File: ChangeLog

package info (click to toggle)
goocanvas 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 4,632 kB
  • ctags: 3,390
  • sloc: ansic: 27,048; sh: 10,337; xml: 826; makefile: 197
file content (1978 lines) | stat: -rw-r--r-- 75,369 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
2011-01-10  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasimage.c: added "alpha" property. Patch from xapantu
	plus a few changes.

	* demo/mv-demo.c:
	* demo/demo.c: added test for the above for the flowers.

	* demo/*: don't set page size for spin button adjustments since that
	seems to be deprecated and outputs warnings.

2010-07-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_adjustment_value_changed): fixed call
	to redraw_static_items_at_position() - was using hadjustment twice.

2010-06-30  Damon Chaplin  <damon@gnome.org>

	* docs: added empty internal subset "[]" to the DOCTYPEs to keep
	gtk-doc happy.

	* src/goocanvas.c (goo_canvas_expose_event): do a cairo_save()/restore()
	around painting the main items, so the static items don't get clipped.

2010-06-29  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_set_property):
	handle setting "clip-path" to NULL to reset it.

	* src/goocanvastable.c: try to handle RTL direction better.

	* src/goocanvasgroup.c (goo_canvas_group_paint): use the scale
	argument rather than the canvas scale.

	* src/goocanvas.c: added "before-initial-expose" flag which we use
	to ignore any redraw requests before the initial expose (since we
	know the entire canvas needs redrawing anyway). This speeds up the
	creation of lots of items, e.g. scalability-demo.

	* demo/Makefile.am (mv_demo_LDADD, demo_LDADD): added -lm to compile.

	* demo/mv-scalability-demo.c:
	* demo/scalability-demo.c: updated to compare with the new-api code.

2010-05-10  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastext.c: improve docs for "width" and "height" properties.
	#595164.

2010-05-10  Damon Chaplin  <damon@gnome.org>

	* src/goocanvaspolyline.c: don't use the reconfigure_arrows flag
	any more - always reconfigure the arrows during an update. This
	avoids a bug where the line width changes but the arrows don't get
	reconfigured, since the line width is an inherited property and
	reconfigure_arrows wasn't being set when it changed.

2010-05-07  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasstyle.c (goo_canvas_style_set_stroke_options): handle
	a NULL dash setting. #617960.

2010-04-28  Luis Medinas  <lmedinas@gnome.org>

	* applied small patch to compile with GTK+ 3.0. #615435.

2009-08-20  Murray Cumming  <murrayc@murrayc.com>

	* docs/architecture.xml: Fixed documenation typo. Bug #591983. 
	(Martin Olsson)

2009-06-29  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.15

2009-06-29  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasimage.c: added "scale-to-fit" property, which scales
	the image to fit the "width" and "height" settings.

	* demo/units-demo.c: 
	* demo/mv-demo.c (plant_flower): 
	* demo/demo.c (plant_flower): test "scale-to-fit" property.

2009-05-07  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasatk.c: fixed GooCanvasWidgetAccessible's G_DEFINE_TYPE
	call, using GOO_TYPE_CANVAS_ITEM_ACCESSIBLE as parent class.
	This avoids a hang when using GooCanvasWidget with accessibility support
	turned on. #581596.

2009-03-16  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.c: changed docs referring to "root_x" and "root_y" 
	fields of event structs to "x_root" and "y_root".

2009-03-15  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.14

2009-03-15  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_query_tooltip): new function to propagate the "query-tooltip"
	signal up through the canvas items.

	* src/goocanvasitem.[hc]: added "query-tooltip" signal and "tooltip" property.
	* src/goocanvasitemmodel.c: added "tooltip" property.

	* src/goocanvasitemsimple.c: added "tooltip" property and query_tooltip signal handler.

	* configure.in: added dependancy on GTK+ 2.12 for tooltips.

	* demo/mv-demo.c: 
	* demo/demo.c: added tests for tooltips.

2009-03-15  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasgrid.c: improved section docs.

	* src/goocanvas.c: improved a few function docs.

2009-03-15  Damon Chaplin  <damon@gnome.org>

	* docs/coordinates.xml: 
	* docs/architecture.xml: 
	* docs/creating-items.xml: 
	* src/goocanvasitemsimple.c: use the terms "canvas coordinate space" or
	"canvas space" rather than "device space" which is a bit misleading.

	* src/goocanvasitem.c: clarify the docs for the mouse position fields
	of the event structs of the signals. #573458

2009-03-15  Gian Mario Tagliaretti  <gianmt@gnome.org>
	(Committed by Damon with a few changes.)

	* src/goocanvasitem.h (struct _GooCanvasItemIface): added
	scroll_event() signals on items.

	* src/goocanvasitem.c: implemented "scroll_event" signals on items.
	
	* src/goocanvas.c: implemented "scroll_event" signals on items.

	* demo/demo.c: added test for above. #566110

2009-02-17  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_convert_from_item_space): changed the
	order of the arguments to cairo_matrix_multiply(). This was broken
	for everything except translations. #572180

2009-01-12  Armin Burgmeier  <armin@openismus.com>

	* src/goocanvasellipse.c:
	* src/goocanvaspolyline.c:
	* src/goocanvasgroup.c:
	* src/goocanvaspath.c:
	* src/goocanvaswidget.c:
	* src/goocanvastext.c:
	* src/goocanvastable.c: Added "x", "y", "width" and "height"
	properties where they do not exist already. GooCanvasGroup clips its
	children if they are out of the specified area, and GooCanvasText
	clips the text. It is possible to turn off the clipping by using -1
	for width or height, respectively, which is the default.

	* demo/generic-position-demo.c:
	* demo/mv-generic-position-demo.c:
	* demo/Makefile.am: Added a demo showing how this can be used to
	generically resize items using drag and drop.

	(Patch from bug #555097 committed with quite a few changes by Damon)

2008-12-29  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasgrid.c (calculate_start_position)
	(paint_vertical_lines, paint_horizontal_lines): handle step <= 0.0.
	It should now draw a single line at the start position.
	(based on patch from Murray Cumming) #563487.

2008-12-29  Jonathon Jongsma  <jonathon@quotidian.org>

	* demo/Makefile.am: Fix building demos when builddir != srcdir.
	goocanvasenumtypes.h is generated in the build dir and not the src dir
	so we must also add the build dir to the INCLUDES. #561401.

2008-11-30  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.13

2008-11-19  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.c (goo_canvas_item_model_stop_animation): 
	* src/goocanvasitem.c (goo_canvas_item_animate_cb)
	(goo_canvas_item_stop_animation): remove the current animation data
	before emitting "animation-finished", so signal handlers can start a
	new animation.

2008-11-17  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasgrid.c: added "show-horz-grid-lines" and
	"show-vert-grid-lines" properties, to turn off horz/vert grid lines.

2008-11-17  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (redraw_static_items_at_position): redraw each
	group of static items separately, to stop GTK+ merging the redraw
	rect into one massive one.

	* demo/mv-demo.c (create_static_model): 
	* demo/demo.c (setup_static_items): use a group for all the static
	items.

2008-11-17  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c: added "redraw-when-scrolled" boolean property,
	which makes the canvas redraw the entire window when scrolled. This
	is useful for static items to reduce flicker, but is slower.
	(goo_canvas_adjustment_value_changed): map/unmap the temporary window
	to implement "redraw-when-scrolled".

2008-11-04  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasutils.h: added typedefs for wrappers of cairo types
	(but ifdef'd out so not usable), so we can add docs for them.
	And added the docs, pointing to the cairo docs.

	* src/goocanvasutils.c (goo_canvas_line_dash_get_type): changed the
	registered type	name from GooCairoLineDash to GooCanvasLineDash so the
	docs work. The struct was already called GooCanvasLineDash.

2008-11-03  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (emit_pointer_event): handle NULL target_item.

	* src/goocanvaswidget.c: note that widgets can't be static.

	* README: 
	* docs/overview.xml: mention static items and the grid item.

2008-11-03  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_scroll_to_item): just return if the
	item is static, as we can't scroll to a static item.
	(emit_pointer_event): convert the pointer position to static item space
	for static items.

	* src/goocanvasatk.c (goo_canvas_item_accessible_get_item_extents): 
	handle static items - don't need to convert to pixels within the
	window as they are already like that.

2008-11-03  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasgrid.[hc]: new grid item.

	* demo/mv-demo.c (setup_grids): 
	* demo/demo.c (setup_grids): added a grid.

	* src/Makefile.am: added grid.

	* src/goocanvas.[hc] (goo_canvas_convert_bounds_to_item_space): new
	function to convert a bounding box in device space to a bounding box
	in item space. Useful in paint() methods to optimize painting.

	* src/goocanvasutils.c (goo_canvas_convert_colors_to_rgba)
	(goo_canvas_get_rgba_value_from_pattern)
	(goo_canvas_set_style_property_from_pattern)
	(goo_canvas_create_pattern_from_color_value)
	(goo_canvas_create_pattern_from_rgba_value)
	(goo_canvas_create_pattern_from_pixbuf_value): new private utility
	functions taken out of goocanvasitemsimple.c code.

	* src/goocanvasitemsimple.c: use above utility functions.

2008-10-31  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.h (struct _GooCanvasItemModelIface): 
	* src/goocanvasitem.h (struct _GooCanvasItemIface): added
	animation_finished() signals.

	* src/goocanvasitemmodel.c: 
	* src/goocanvasitem.c: implemented "animation-finished" signals.

	* demo/mv-demo-animation.c: 
	* demo/demo-animation.c: added test for above.

2008-10-31  Damon Chaplin  <damon@gnome.org>

	* demo/mv-demo-arrowhead.c (on_button_press): 
	* demo/demo-arrowhead.c (on_button_press): 
	* demo/mv-demo.c (on_button_press): 
	* demo/demo.c (on_button_press): use GDK_POINTER_MOTION_HINT_MASK for
	the pointer grab, so we don't get too many events.

2008-10-31  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.h: 
	(goo_canvas_get_static_root_item): new function to get static root item.
	(goo_canvas_set_static_root_item): new function to set static root item.
	(goo_canvas_get_static_root_item_model): new function to get static
	root item model.
	(goo_canvas_set_static_root_item_model): new function to set static
	root item model.
	(goo_canvas_request_item_redraw): new function to request a redraw of
	an item either in device space or in the static item space.

	* src/goocanvasitem.h (struct _GooCanvasItemIface): added
	get_is_static() and set_is_static() interface methods.

	* src/goocanvasitemsimple.h (struct _GooCanvasItemSimpleData): removed
	one bit from cache_setting and used it for is_static. Hopefully that
	won't break binary compatibility.

	* src/goocanvas.c (struct _GooCanvasPrivate): added new private struct
	with static root item & model and current window position.
	(goo_canvas_init): init private struct and create static root item.
	(goo_canvas_dispose): free static root item & model.
	(goo_canvas_update_internal): update static items.
	(goo_canvas_get_item_at): check static items as well.
	(goo_canvas_get_items_at): check static items as well.
	(goo_canvas_realize): store original window position in private struct.
	(request_static_redraw): new function to request a redraw in static
	coordinate space.
	(request_all_static_redraws): new function to request a redraw of all
	static items.
	(paint_static_items): new function to paint the static items.
	(goo_canvas_expose_event): call paint_static_items().
	(goo_canvas_convert_to_static_item_space): new function to convert
	coords to static space.
	(goo_canvas_adjustment_value_changed): redraw the static items before
	the window is scrolled, but in their new position. We do this so we
	don't see them being dragged along when scrolling.
	Redraw them again after the window has been moved. Hopefully we can
	optimize this a bit in future to avoid the flickering.

	* src/goocanvasitem.c (goo_canvas_item_get_is_static)
	(goo_canvas_item_set_is_static): new functions to call the interface
	methods if they	are implemented. The default behavior allows old code
	to work without crashing (but old items can't be static).

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_is_static)
	(goo_canvas_item_simple_set_is_static): implemented new interface
	functions - just get/set the bit-flag.

	* src/goocanvasgroup.c (goo_canvas_group_add_child): call
	set_is_static() on new child.

	* src/goocanvasgroup.c (goo_canvas_group_set_is_static): implement new
	interface method, calling set_is_static() for all children if changed.

	* src/goocanvasitemsimple.c:
	* src/goocanvasgroup.c:
	* src/goocanvastable.c: use new goo_canvas_request_item_redraw()
	function so static items are redrawn correctly.

	* demo/mv-demo.c (create_static_model): 
	* demo/demo.c (setup_static_items): added some static items to test.
	Note that dragging around when scale != 1.0 is weird as the coord
	spaces are different, but is expected.

2008-10-15  Damon Chaplin  <damon@gnome.org>

	* src/goocanvaspolyline.c (goo_canvas_polyline_is_item_at): only check
	the fill if the polyline path is closed. Otherwise if we call
	cairo_in_fill() it will automatically close the path which is not what
	we want.

	* src/goocanvaspath.c (goo_canvas_path_is_item_at): only check the fill
	if a fill color/pattern has been set, for similar reasons.

2008-10-12  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastext.c (goo_canvas_text_create_layout): fixed calculation
	of text bounds.

2008-10-12  Armin Burgmeier  <armin@openismus.com>

	* src/goocanvastable.c (goo_canvas_table_get_requested_area)
	(goo_canvas_table_allocate_area): Request redraw of the table's
	bounds, as GooCanvasItemSimple does, to fix incorrect drawing when
	changing the table's width or height.

	(goo_canvas_table_paint): Keep clipping to the allocated size when
	drawing the children, so they are not rendered outside the allocated
	area when the table is shrunk. #555093

2008-10-11  Damon Chaplin  <damon@gnome.org>

	* docs/coordinates.xml: added section on Cairo limits.

	* README: updated home page URL.

2008-10-05  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastext.c (goo_canvas_text_create_layout): don't turn off
	font hinting. I don't think it has any effect on text layout so we can
	safely leave it on. Small text should be easier to read, as well as
	non-antialiased text. Though it does seem to sometimes produce slightly
	odd results for rotated text (see the 8-bit text in the demo).

2008-09-21  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.12

2008-09-21  Damon Chaplin  <damon@gnome.org>

	* configure.in: renamed LT_CURRENT, LT_AGE & LT_REVISION to CURRENT,
	AGE & REVISION to avoid problems with libtool 2.2. #552725.

2008-09-14  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_requested_area)
	(goo_canvas_item_simple_allocate_area): request redraws of the old and
	new item bounds.

2008-09-09  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.11

2008-09-02  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastable.c (goo_canvas_table_paint): use the item's
	fill and stroke colors for the table background and grid.

	* demo/table-demo.c: test the above.

2008-08-17  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasgroup.c (goo_canvas_group_add_child)
	(goo_canvas_group_remove_child): emit the "children_changed" ATK
	signal, if ATK is enabled. This needs testing.

2008-08-17  Damon Chaplin  <damon@gnome.org>

	* src/Makefile.am (INCLUDES): 
	* demo/Makefile.am (INCLUDES): get rid of the XXX_DISABLE_DEPRECATED
	flags so we don't break compilation when GTK+ deprecates stuff. #548086

2008-06-24  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasgroup.c (goo_canvas_group_get_child)
	(goo_canvas_group_model_get_child): return NULL if child_num is out
	of range. #535150

	* src/goocanvasitemmodel.c (goo_canvas_item_model_get_child): 
	* src/goocanvasitem.c (goo_canvas_item_get_child): updated docs.

2008-06-24  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasutils.h: removed comma at end of GooCanvasItemVisibility
	enum. Patch from Hubert Figuiere. #539844

2008-06-22  Kjartan Maraas  <kmaraas@gnome.org>

	* demo/demo-animation.c: (create_animation_page):
	* demo/demo-arrowhead.c: (create_drag_box):
	* demo/demo-clipping.c: (setup_canvas):
	* demo/demo-events.c: (setup_item_signals):
	* demo/demo-features.c: (create_canvas_features):
	* demo/demo-fifteen.c: (setup_item_signals),
	(create_canvas_fifteen):
	* demo/demo-focus.c: (create_focus_box):
	* demo/demo-grabs.c: (create_fixed), (setup_item_signals):
	* demo/demo-large-items.c: (create_large_items_page):
	* demo/demo-paths.c: (create_paths_page):
	* demo/demo-table.c: (create_demo_item), (create_demo_table),
	(create_width_for_height_table):
	* demo/demo.c: (setup_item_signals), (create_canvas_primitives),
	(setup_canvas), (create_window):
	* demo/mv-demo-animation.c: (create_animation_page):
	* demo/mv-demo-arrowhead.c: (on_item_created),
	(create_canvas_arrowhead):
	* demo/mv-demo-clipping.c: (setup_canvas):
	* demo/mv-demo-events.c: (on_item_created), (create_events_page):
	* demo/mv-demo-features.c: (on_item_created),
	(create_canvas_features):
	* demo/mv-demo-fifteen.c: (on_item_created),
	(create_canvas_fifteen):
	* demo/mv-demo-focus.c: (on_item_created), (create_focus_page):
	* demo/mv-demo-grabs.c: (create_fixed), (on_item_created),
	(create_canvas):
	* demo/mv-demo-paths.c: (create_paths_page):
	* demo/mv-demo-table.c: (create_demo_item), (create_demo_table),
	(create_width_for_height_table):
	* demo/mv-demo.c: (on_item_created), (create_canvas_primitives),
	(create_window):
	* demo/mv-scalability-demo.c: (setup_canvas), (create_canvas),
	(main):
	* demo/mv-simple-demo.c: (main):
	* demo/mv-table-demo.c: (main):
	* demo/scalability-demo.c: (setup_canvas), (create_canvas), (main):
	* demo/simple-demo.c: (main):
	* demo/table-demo.c: (main):
	* demo/units-demo.c: (setup_canvas), (create_canvas), (main):
	* demo/widgets-demo.c: (create_focus_box), (main):
	Use G_CALLBACK instead of the deprecated GtkSignal stuff.

2008-05-18  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasatk.c (goo_canvas_widget_accessible_new): made static.

2008-05-18  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_expose_event): when clipping, clip to
	the intersection of the canvas bounds and the expose bounds, to avoid
	problems with cairo's coordinate limits. (This was apparent in the
	scalability demo - it wasn't redrawing properly at the bottom of the
	canvas.)

2008-05-09  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.h: 
	* src/goocanvasitem.h: removed _CLASS macros since they are interfaces.
	(From Masatake YAMATO).

2008-05-09  Damon Chaplin  <damon@gnome.org>

	* demo/widgets-demo.c (remove_widget_clicked): use g_list_delete_link
	to update the GList, to avoid a crash.

2008-04-27  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.10

2008-04-06  Armin Burgmeier  <armin@openismus.com>

	* src/goocanvastable.c: Implemented grid lines between table items by
	adding "horz-grid-line-width", "vert-grid-line-width",
	"x-border-spacing" and "y-border-spacing" properties.
	(Patch applied by Damon with a few changes.)

	* demo/mv-table-demo.c: 
	* demo/table-demo.c: added tests for the gridlines.

2008-04-04  Damon Chaplin  <damon@gnome.org>

	* docs/coordinates.xml: 
	* docs/architecture.xml: new sections.

	* docs/creating-items.xml: rewritten.

	* src/goocanvasitemmodel.c (goo_canvas_item_model_set_parent): 
	* src/goocanvasitem.c (goo_canvas_item_set_parent): note in the docs
	that the "parent" property can be used to set the parent, but that
	these functions are only for implementing new items (a bit confusing).

	* src/goocanvasitem.c (goo_canvas_item_is_visible): fixed a bug
	where if the item doesn't support the method it would just return
	TRUE, but it should also check the ancestors are visible.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_set_property)
	(goo_canvas_item_model_simple_set_property): use the _remove()
	functions instead of the find_child()/remove_child() code.

2008-03-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.c (goo_canvas_item_get_simple_transform): 
	* src/goocanvasitemmodel.c (goo_canvas_item_model_get_simple_transform): 
	new functions to do opposite of set_simple_transform().

	* demo/mv-demo.c (test_simple_transforms): 
	* demo/demo.c (test_simple_transforms): added some test code for above.

2008-03-27  Damon Chaplin  <damon@gnome.org>

	* docs/wysiwyg.xml: new section to document WYSIWYG stuff.

2008-03-23  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c: made "stroke-color-rgba" and
	"fill-color-rgba" properties read/write.

	* configure.in (pkg_modules): depend on cairo >= 1.4.0 for
	cairo_pattern_get_rgba().

	* demo/demo.c (test_color_properties): added some test code.

2008-02-25  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c: added default implementations for the
	simple_update/paint/get_item_at() virtual functions that call
	simple_create_path(). These make it easier for language bindings.
	Based on patch from Jonathon Jongsma.
	
2008-02-25  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastext.c (goo_canvas_text_get_natural_extents): added
	function to get the natural extents of the text.

2007-11-23  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastable.c (goo_canvas_table_size_allocate_pass1): when
	shrinking, make sure the extra value is always decreasing, so we don't
	get into an infinite loop.

2007-11-18  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c: added support for "clear-background" property,
	patch from Grahame Bowland.

2007-11-18  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.c (goo_canvas_item_get_child_property) 
	(goo_canvas_item_set_child_property): 
	* src/goocanvasitemmodel.c (goo_canvas_item_model_get_child_property) 
	(goo_canvas_item_model_set_child_property): new functions to get/set
	individual child properties (to help language bindings).

	* demo/demo-table.c (create_demo_item): 
	* demo/mv-demo-table.c (create_demo_item): test the above.

	* src/goocanvasitem.c:
	* src/goocanvasitemmodel.c: fixed some docs that wrongly say functions
	are for implementing new items only.

2007-11-13  Murray Cumming  <murrayc@murrayc.com>

	* src/goocanvasitem.c: goo_canvas_item_add_child():
	* src/goocanvasitemmodel.c: goo_canvas_item_model_add_child(): 
	Add a debugging check to make sure the child is not the same as the
	parent, preventing an endless loop.

2007-11-13  Murray Cumming  <murrayc@murrayc.com>

	* src/goocanvasimage.c: goo_canvas_image_set_common_property(): 
	Support setting the pixbuf property to NULL. 

2007-11-13  Murray Cumming  <murrayc@murrayc.com>

	* src/goocanvas.c: goo_canvas_render(): Call goo_canvas_update() 
	if necessary, as suggested by Damon, to fix a crash when rendering 
	a GooCanvasTable that has never been shown on screen.

2007-08-13  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.9

2007-08-13  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastext.c: added "wrap" property (patch from James
	Dietrich).

	* src/goocanvastable.c: use static goo_canvas_table_parent_iface
	and goo_canvas_table_model_parent_iface variables which are set in
	the class_init functions. That makes it much easier to call the
	GooCanvasGroup methods when needed.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_set_parent): call
	goo_canvas_item_set_canvas() so items can do whatever is needed
	(e.g. groups can pass the canvas on to children).

	* src/goocanvasitem.c (goo_canvas_item_request_update): don't use
	return here as it is a void function.

	* src/goocanvastable.c (goo_canvas_table_remove_child): 
	* src/goocanvasgroup.c (goo_canvas_group_remove_child): check the
	child_num arg is valid.

2007-06-20  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c: added "automatic-bounds", "bounds-from-origin" and
	"bounds-padding" properties, used to calculate the canvas bounds
	automatically.

	* demo/demo.c (change_bounds_clicked): 
	* demo/mv-demo.c (change_bounds_clicked): test the above.

2007-06-19  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c: added "integer-layout" boolean property, to specify
	that all layout in the canvas (i.e. in GooCanvasTable) is done to the
	nearest integer.

	* src/goocanvastable.c: implement integer layout.

	* demo/table-demo.c: 
	* demo/mv-table-demo.c: tests for integer layout.

2007-05-15  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c: added "scale-x" and "scale-y" properties to set
	the horizontal and vertical scale independently. Note that if items
	use the visibility threshold setting it will compare it to the minimum
	of scale_x and scale_y.

	* demo/demo.c: added "Scale X" and "Scale Y" spinbuttons.

2007-05-15  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_style_set, goo_canvas_realize): reset
	the window backgrounds to nothing, to avoid flicker when scrolling.
	(This happened due to the delay between X clearing the window and
	GooCanvas repainting it.)
	(goo_canvas_expose_event): clear the background ourselves here.

2007-05-14  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_set_property) 
	(goo_canvas_set_bounds): queue a redraw of the widget.
	(goo_canvas_expose_event): clip to the canvas bounds if necessary.

	* demo/mv-demo.c (change_bounds_clicked): 
	* demo/demo.c (change_bounds_clicked): test changing the bounds
	dynamically.

2007-05-13  Damon Chaplin  <damon@gnome.org>

	* src/goocanvaspath.c: use a common GooCanvasPathData like the other
	standard items. This fixes a crash where the model's path_commands
	GArray was updated but the view still pointed to the old GArray
	which had been freed.

	* demo/mv-demo-paths.c: 
	* demo/demo-paths.c: added a button to test changing the path data
	dynamically.

2007-05-11  Damon Chaplin  <damon@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@gnome.org>

	* src/goocanvas.c (goo_canvas_create_cairo_context): if the GooCanvas
	isn't realized, use a temporary image surface to create the cairo_t.
	Hopefully that will result in exactly the same bounds of items.
	(goo_canvas_get_item): initialize item to NULL.

2007-04-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.h: 
	* src/goocanvasutils.c (goo_canvas_bounds_get_type): added type stuff
	for language bindings (patch from Murray Cumming).

2007-04-25  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.c (_goo_canvas_item_model_emit_child_added) 
	(_goo_canvas_item_model_emit_changed): new simple functions to emit
	signals faster (avoids signal name lookups).

	* src/goocanvasitemsimple.c
	(goo_canvas_item_model_simple_set_property) 
	(goo_canvas_item_model_simple_set_transform) 
	(goo_canvas_item_model_simple_set_style): 
	* src/goocanvasgroup.c (goo_canvas_group_model_add_child): use the
	above functions for a little speedup.

2007-04-25  Damon Chaplin  <damon@gnome.org>

	* demo/mv-scalability-demo.c: 
	* demo/scalability-demo.c: instead of connecting signals to all items
	we just use a handler on the root item. Also added a switch to turn
	off the text items, to see the difference in performance (a lot).
	Without text items we can startup with 100,000 items in 1 second
	for a simple canvas, or 4 seconds for model-view (compared to 4 seconds
	and 7 seconds with text items).

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_set_model): only
	setup the accessibility stuff if accessibility is enabled (as it is
	quite slow if you have lots of items).

2007-04-25  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasrect.c (goo_canvas_rect_update): added optimized
	function to calculate the bounds without using cairo.

2007-04-16  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.c (goo_canvas_item_animate_cb): check keep_source
	before updating the item so we don't use the freed animation data.

2007-04-16  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_path_bounds): 
	handle empty bounds for an item's fill or stroke. cairo 1.4.x returns
	0.0 for x1/y1/x2/y2 in that case, though older versions of cairo
	returned odd values. So I've added a workaround for that as well.

2007-04-05  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_key_press, goo_canvas_key_release): only
	emit "key-press" and "key-release" signals on items if the canvas has
	the focus. (We were incorrectly emitting signals if an embedded widget
	had the focus, as the events were propagating up to the canvas.)

2007-04-03  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.8

2007-04-03  Damon Chaplin  <damon@gnome.org>

	* demo/mv-demo.c (create_canvas_primitives): 
	* demo/demo.c (create_canvas_primitives): set the maximum scale to 50,
	since if we go above that we hit the cairo 16-bit limit and the large
	rectangle isn't painted correctly.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_install_common_properties): improved docs for fill/stroke properties.

	* src/goocanvaswidget.c (goo_canvas_widget_new) 
	(goo_canvas_widget_set_widget): keep our own reference to the widget,
	rather than just relying on the canvas widget's reference. Otherwise
	once the widget is removed from the canvas we have an invalid pointer.

2007-03-30  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasutils.c (goo_canvas_boolean_handled_accumulator): new
	function, copied from _gtk_boolean_handled_accumulator().

	* src/goocanvasitem.c (goo_canvas_item_base_init): use the above
	accumulator for the event signals, so returning TRUE from a handler
	stops the signal.

	* src/goocanvasitemsimple.h (struct _GooCanvasItemSimpleData): 
	* src/goocanvasitem.h (struct _GooCanvasItemIface): added a few bits
	that will be needed to support tooltips with GTK+ 2.12. I have a patch
	to support tooltips but I don't want to depend on GTK+ 2.12 yet.

2007-03-28  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasstyle.c (goo_canvas_style_set_fill_options): check if
	the fill pattern is set to NULL, which is used to reset any fill
	pattern or color. If it is, don't set the cairo source and return
	FALSE.

	* demo/demo.c (move_ellipse_clicked): set the fill pattern to NULL
	occasionally to test the above.

2007-03-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c: added "background-color" and "background-color-rgb"
	properties to set the background color of the canvas, based on a patch
	from Gian Mario Tagliaretti.

	* demo/demo.c (create_canvas_primitives): 
	* demo/mv-demo.c (create_canvas_primitives): use above properties.

2007-03-16  Murray Cumming  <murrayc@murrayc.com>

	* src/goocanvasitemsimple.h: Change the struct field name from 
	private to priv, to avoid problems when using this from C++.

2007-03-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.h (struct _GooCanvasItemSimpleData): use
	guints for the bitflags rather than the enum types, since that is what
	GTK+ does. Maybe enums cause a problem because of being signed ints.
	Also added cache_setting which we may use in future.
	(struct _GooCanvasItemSimple): added private pointer to allow a bit
	of expansion in future (e.g. maybe a cache).

2007-03-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvaswidget.c (goo_canvas_widget_set_canvas): unparent the
	widget if the canvas is set to NULL (i.e. when the item is removed
	from the canvas).

2007-03-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.c (goo_canvas_item_model_remove): 
	* src/goocanvasitem.c (goo_canvas_item_remove): new convenience
	functions to easily remove items & models from the canvas.

	* demo/mv-demo-features.c (on_button_press): 
	* demo/demo-features.c (on_button_press): 
	* demo/demo.c (on_button_press): 
	* demo/mv-demo.c (on_button_press): 
	* demo/widgets-demo.c (remove_widget_clicked): use new remove()
	functions to test them.

	* docs/goocanvas-sections.txt: rearranged GooCanvasItem/Model to put
	commonly-used functions first, and added remove() functions.

2007-03-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastext.[hc]: added ellipsize property, and used bit flags
	to cut down on memory use a bit.

	* demo/demo.c (setup_texts): added test for ellipsized text.

	* demo/mv-demo.c: 
	* demo/mv-demo-table.c: 
	* demo/mv-demo-clipping.c: updated model-view demos, adding new stuff
	from simple demo.

2007-03-07  Damon Chaplin  <damon@gnome.org>

	* src/*.c: added notes to all functions that are only meant to be used
	when implementing new canvas items.

	* docs/goocanvas-sections.txt: placed all the functions only used when
	implementing new canvas items together at the bottom.

2007-03-06  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.c (goo_canvas_item_get_items_at): if the item
	doesn't support this method just return found_items.

	* src/goocanvas.c (goo_canvas_create_cairo_context): made this public.

2007-03-06  Damon Chaplin  <damon@gnome.org>

	* */*: added 'const' to a number of arguments taking a cairo_matrix_t*
	or a GooCanvasBounds*.

2007-03-06  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.[hc]: added get_requested_height() method.

	* src/goocanvastable.c: Reworked a lot of code to support
	width-for-height layout. This gets the requested area of all children,
	calculates the column widths, then checks if any children want to
	change their requested height given their allocated width. Text items
	change their requested height based on their width, so this results in
	a better layout.

	* src/goocanvastext.h (struct _GooCanvasText): added layout_width to
	store the width used for the PangoLayout. This initially comes from
	the text's width property, but can be modified when the text item
	is layed out in a container like GooCanvasTable.

	* src/goocanvastext.c (goo_canvas_text_get_requested_height):
	calculates the requested height for the given width, or just returns
	-1 if the text item is rotated or has a clip path, in which case the
	original height is used.
	(goo_canvas_text_init, goo_canvas_text_create_layout) 
	(goo_canvas_text_update): use layout_width.

	* demo/demo-table.c (create_width_for_height_table): added tests for
	width-for-height layout.

	* demo/demo-clipping.c (setup_canvas): added text item to check
	clipping works OK with them.

2007-02-27  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.7

2007-02-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_get_items_in_area): new function to
	get items inside or outside a given area.

	* demo/demo.c: added little test for goo_canvas_get_items_at() and
	goo_canvas_get_items_in_area().

2007-02-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.[hc]: 
	* src/goocanvasitem.[hc]: used name "transform" for all arguments
	to get/set_transform functions.

2007-02-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.[hc]: 
	* src/goocanvasitem.[hc]: changed get_transform() method to take a
	cairo_matrix_t* to fill in, and return a boolean if a transform is set.
	This is better for bindings.

	* src/goocanvasitemsimple.c: updated get_transform() methods.

2007-02-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.[hc]: changed get_item_at method to get_items_at
	which returns a list of found items rather than a single found item.

	* src/goocanvasitemsimple.[hc]: changed get_item_at() method to
	is_item_at() which just returns a boolean, and updated to new API.

	* src/goocanvas.c (goo_canvas_get_item_at): updated to use new API.
	(goo_canvas_get_items_at): new function to return list of found items.

	* src/goocanvastable.c (goo_canvas_table_get_items_at): 
	* src/goocanvasgroup.c (goo_canvas_group_get_items_at):
	* src/goocanvasimage.c (goo_canvas_image_is_item_at): 
	* src/goocanvaspolyline.c (goo_canvas_polyline_is_item_at): 
	* src/goocanvastext.c (goo_canvas_text_is_item_at): 
	* src/goocanvaswidget.c (goo_canvas_widget_is_item_at): 
	* docs/creating-items.xml: 
	* demo/demo-item.c (goo_demo_item_is_item_at): updated for new API.

2007-02-25  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c: added "hint-metrics" property so people
	can use hinted metrics for prettier text if they aren't scaling the
	canvas at all.
	
	* src/goocanvasstyle.c: added goo_canvas_style_hint_metrics_id quark.

	* src/goocanvasutils.c (goo_cairo_hint_metrics_get_type): added enum
	stuff for cairo_hint_metrics_t.

	* src/goocanvastext.c (goo_canvas_text_create_layout): use hint metrics
	property.

2007-02-25  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_create_cairo): use CAIRO_ANTIALIAS_GRAY
	as the default antialiasing mode, as that is what is recommended when
	using unhinted text. (subpixel antialiasing looks really bad.)

2007-02-25  Damon Chaplin  <damon@gnome.org>

	* src/*.c: checked over all finalize methods and moved code to dispose
	methods where appropriate. (Dispose methods should be used to unref
	any other objects.) This was done to help the Ruby bindings.
	It was a bit fiddly so it might cause a few bugs.

	* src/goocanvasutils.c (goo_cairo_matrix_copy) 
	(goo_cairo_matrix_free): allocate and free with g_slice_new/free() as
	that is what was being used in GooCanvasItemSimple.

	* demo/scalability-demo.c: added a test for a very wide canvas, almost
	up to the 31-bit GDK window size limit. (It is slow to start though.)

2007-02-24  Damon Chaplin  <damon@gnome.org>

	* demo/widgets-demo.c (on_delete_event): 
	* demo/units-demo.c (on_delete_event): 
	* demo/mv-scalability-demo.c (on_delete_event): 
	* demo/scalability-demo.c (on_delete_event): 
	* demo/mv-demo.c (on_delete_event): 
	* demo/demo.c (on_delete_event): use gtk_main_quit() rather than exit()
	here, so GTK+ destroys the window and the finalization code gets
	tested.

	* src/goocanvas.c (goo_canvas_remove): implement this so embedded
	widgets are removed properly.

2007-02-20  Damon Chaplin  <damon@gnome.org>

	* demo/demo-table.c: 
	* demo/mv-demo-table.c: moved table-demo.c into main demo app, and
	made a model-view version.

2007-02-20  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastable.c (goo_canvas_table_get_item_at) 
	(goo_canvas_table_paint): if the table was shrunk below its requested
	size, clip the children if appropriate.

	* src/goocanvastable.c (goo_canvas_table_get_item_at) 
	(goo_canvas_table_paint): 
	* src/goocanvasgroup.c (goo_canvas_group_get_item_at) 
	(goo_canvas_group_paint): check the bounds and handle the clip path.

	* demo/table-demo.c (create_demo_table): added parameters and created
	a second table of shapes, this time with the items shrunk and clipped.

2007-02-20  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastext.c (goo_canvas_text_create_layout): 
	(goo_canvas_text_get_item_at): use the ink rect as well as the logical
	rect when calculating the bounds or doing hit-testing.

	* src/goocanvastable.c (goo_canvas_table_size_allocate_pass1): shrink
	homogeneous tables if appropriate.

	* src/goocanvaswidget.c (goo_canvas_widget_get_item_at): return the
	widget item if the point is within its bounds.

	* src/goocanvas.c (goo_canvas_render): if bounds are passed in set
	the clip path to the bounds.

	* demo/demo.c (write_pdf_clicked): added code to test clipped painting.

2007-02-19  Damon Chaplin  <damon@gnome.org>

	* demo/scalability-demo.c (setup_canvas): set the font on the root
	group so we don't need to set it on all the text items.
	Also output the time to the first expose.

	* demo/mv-scalability-demo.c: new demo based on scalability-demo.c.

2007-02-19  Damon Chaplin  <damon@gnome.org>

	* demo/demo.c: 
	* demo/mv-demo.c: 
	* demo/demo-animation.c: 
	* demo/mv-demo-animation.c: made the file-global variables static so
	they don't clash, and updated the demos a bit.

2007-02-19  Damon Chaplin  <damon@gnome.org>

	* configure.in: 
	* src/Makefile.am: rewrote the stuff that handles the autogeneration
	of goocanvasmarshal.[hc] and goocanvasenumtypes.[hc], copying what
	GTK+ does. It now has a --disable-rebuilds option to disable the
	autogeneration and it doesn't try autogeneration if Perl isn't
	available.

2007-02-17  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.6

2007-02-17  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.h (struct _GooCanvasItemSimpleClass): renamed
	create_path, update, paint and get_item_at class methods to
	simple_create_path, simple_update, simple_paint and simple_get_item_at.
	This avoids confusion with the GooCanvasItem interface methods with the
	same name (and may avoid problems with language bindings etc.)

	* src/goocanvasellipse.c (goo_canvas_ellipse_class_init): 
	* src/goocanvasimage.c (goo_canvas_image_class_init): 
	* src/goocanvaspath.c (goo_canvas_path_class_init): 
	* src/goocanvaspolyline.c (goo_canvas_polyline_class_init): 
	* src/goocanvasrect.c (goo_canvas_rect_class_init): 
	* src/goocanvastext.c (goo_canvas_text_class_init): 
	* src/goocanvaswidget.c (goo_canvas_widget_class_init): 
	* demo/demo-item.c (goo_demo_item_class_init): 
	* src/goocanvasitemsimple.c: updated use of above class methods.

	* src/goocanvasgroup.c (goo_canvas_group_update): handle children with
	empty bounds (i.e. ignore their bounds when computing the group's
	bounds).

	* src/goocanvastable.c (goo_canvas_table_paint) 
	(goo_canvas_table_get_item_at): 
	* src/goocanvasgroup.c (goo_canvas_group_get_item_at)
	(goo_canvas_group_paint): don't check the
	child bounds here. Leave it up to the children to do that.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_item_at) 
	(goo_canvas_item_simple_paint): check the item's bounds here.

2007-02-15  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasutils.c: 
	* src/goocanvaspath.c: moved data structures and code for parsing and
	creating SVG paths from goocanvaspath.[hc] to goocanvasutils.[hc].
	Added goo_canvas_parse_path_data() and goo_canvas_create_path() public
	functions.

	* src/goocanvasitemsimple.c: added "clip-path" and "clip-fill-rule"
	properties to specify the clip path and fill rule, and used these
	to calculate bounds, paint, and do hit testing.

	* src/goocanvasitemsimple.h (struct _GooCanvasItemSimpleData): added
	clip_path_commands and clip_fill_rule.

	* src/goocanvastext.c (goo_canvas_text_set_model): 
	* src/goocanvasrect.c (goo_canvas_rect_set_model): 
	* src/goocanvaspolyline.c (goo_canvas_polyline_set_model): 
	* src/goocanvaspath.c (goo_canvas_path_set_model): 
	* src/goocanvasimage.c (goo_canvas_image_set_model): 
	* src/goocanvasgroup.c (goo_canvas_group_set_model): 
	* src/goocanvasellipse.c (goo_canvas_ellipse_set_model): use
	goo_canvas_item_simple_set_model() rather than getting parent iface.
	(For GooCanvasTable this actually caused a crash as when it called
	the GooCanvasGroup function that got the parent iface which pointed to
	itself so it got into an infinite loop.)

	* demo/mv-demo-clipping.c: 
	* demo/demo-clipping.c: new files for clipping demo pages.

	* demo/Makefile.am: 
	* demo/mv-demo.c: 
	* demo/demo.c: added clipping pages.

2007-02-13  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.c (goo_canvas_size_allocate): only allocate the child
	widgets if we are realized, otherwise it crashes.

2007-02-13  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.c (goo_canvas_item_model_animate): 
	* src/goocanvasitem.c (goo_canvas_item_animate): added "absolute"
	parameter, and rewrote the animation code, using the same code for
	GooCanvasItem and GooCanvasItemModel.

	* demo/demo-animation.c: 
	* demo/mv-demo-animation.c: new files for animation demo pages.

	* demo/mv-demo.c: 
	* demo/demo.c: added new animation pages and updated animation calls.

2007-02-12  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.c (goo_canvas_item_model_set_simple_transform): 
	* src/goocanvasitem.c (goo_canvas_item_set_simple_transform): convert
	rotation to radians.

2007-02-09  Damon Chaplin  <damon@gnome.org>

	* demo/demo-item.c (goo_demo_item_update): don't convert bounds to
	device space.

	* src/*.h: added padding to all *Class structs, to allow a bit of
	expansion without breaking backwards compatibility.

	* docs/*.xml: added example code to the introductory sections.
	Needs more explanation at some point.

	* configure.in: 
	* src/Makefile.am: added libtool version numbers.

2007-02-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.c
	(goo_canvas_item_model_set_simple_transform): 
	* src/goocanvasitem.c (goo_canvas_item_set_simple_transform): new
	convenience functions to set the position, scale and rotation easily.

	* demo/demo.c (move_ellipse_clicked): added tests for
	goo_canvas_item_set_simple_transform().

	* */*: more documentation updates. I've started adding a few
	introductory sections, tidied up a few bits, and tried to update all
	the docs that referred to the old model/view terminology.

2007-02-08  Damon Chaplin  <damon@gnome.org>

	* */*: more documentation updates. It is 100% complete now, though it
	still needs docs on the optional model/view split and creating new
	items.

2007-02-07  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasutils.c (goo_canvas_query_child_properties): check if
	type is classed before calling g_type_interface_peek().

2007-02-06  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas.[hc]: updated docs.

2007-02-04  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasstyle.[hc]: extern the GQuarks in the header and define
	them in the .c file.

2007-02-04  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemmodel.c (goo_canvas_item_model_base_init): fix type
	of "parent" property, from Gian Mario Tagliaretti.

2007-02-04  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_check_style): fixed
	bug where if item was using its parent's style it wouldn't get updated.

	* */*: documented most of the other symbols. I just need to document
	the 2 main interfaces - GooCanvasItemIface and GooCanvasItemModelIface,
	check it all over for out-of-date docs, and document the optional
	model/view split a bit more. (And maybe a section on writing new items)

2007-02-02  Damon Chaplin  <damon@gnome.org>

	* */*: updated docs for all canvas items & models.

2007-02-01  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastable.c: finished table item. I think the only API
	breakage this introduces is that GooCanvasItemSimple subclasses that
	override the update() class method must now return the bounds in user
	space rather than device space. (This is needed to do the table
	layout.)

	* demo/table-demo.c: added more test tables with various transforms
	and settings.

	* src/goocanvasitem.c (goo_canvas_item_get_requested_area) 
	(goo_canvas_item_allocate_area)
	(goo_canvas_item_get_transform_for_child) : new functions and interface
	methods to support GooCanvasTable and other layout containers.

	* src/goocanvasitemsimple.c: added support for GOO_CANVAS_ITEM_HIDDEN,
	initialized the model's visibility setting to GOO_CANVAS_ITEM_VISIBLE.
	(goo_canvas_item_simple_update): split part of it out into
	goo_canvas_item_simple_update_internal and updated slightly.
	(goo_canvas_item_simple_get_requested_area) 
	(goo_canvas_item_simple_allocate_area): new functions to support
	GooCanvasTable and other layout containers.
	(goo_canvas_item_simple_get_path_bounds): don't convert to device space
	as some code needs the bounds in user space.

	* src/goocanvas.c (goo_canvas_convert_to_item_space) 
	(goo_canvas_convert_from_item_space): used the new
	goo_canvas_item_get_transform_for_child() function to get the transform
	for each item.

	* src/goocanvasutils.h: added GOO_CANVAS_ITEM_HIDDEN visibility setting
	which is used for items which are invisible and not allocated any space
	in containter items like GooCanvasTable.

	* src/goocanvasgroup.c (goo_canvas_group_get_item_at) 
	(goo_canvas_group_paint): support GOO_CANVAS_ITEM_HIDDEN.

	* src/goocanvaspolyline.c (goo_canvas_polyline_compute_bounds):
	* src/goocanvasimage.c (goo_canvas_image_update): leave bounds in user
	space.

	* src/goocanvaswidget.c: updated to override the GooCanvasItemSimple
	update, paint & get_item_at methods instead of the interface methods,
	added support for GOO_CANVAS_ITEM_HIDDEN, and added
	goo_canvas_widget_allocate_area() implementation.

	* src/goocanvastext.c (goo_canvas_text_get_item_at): fixed bug that
	meant it didn't work for text items with no fill color/pattern set.

2006-12-09  Damon Chaplin  <damon@gnome.org>

	* docs/goocanvas-sections.txt: 
	* docs/goocanvas-docs.sgml: use separate sections for model objects,
	as gtk-doc doesn't support multiple objects per section.

	* docs/Makefile.am (SCANGOBJ_OPTIONS): added --query-child-properties
	argument to document child properties (needs cvs gtk-doc).

	* src/goocanvasutils.c (goo_canvas_query_child_properties): new
	function to allow documentation of child properties with gtk-doc.

	* src/goocanvasitemmodel.c: 
	* src/goocanvasitem.c: added support for child properties of item
	models.

	* src/goocanvastable.c: beginnings of a new table item to layout child
	items. Doesn't do much yet.

	* demo/table-demo.c: beginnings of demo for GooCanvasTable.

	* src/goocanvasitem.c (goo_canvas_item_animate): clarified docs.

	* src/goocanvasgroup.c: use goo_canvas_item_add/move/remove_child()
	rather than goo_canvas_group_add/move_remove_child() so subclasses can
	reuse group's code. Also fix some docs & variable names.

2006-11-30  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.h (struct _GooCanvasItemSimpleClass): added
	new update/paint/get_item_at methods that subclasses can override.
	If items use these methods GooCanvasItemSimple will perform all the
	standard stuff before passing control to them. This makes it much
	easier to create simple canvas items.

	* demo/demo-item.c: 
	* src/goocanvaspolyline.c: 
	* src/goocanvastext.c: 
	* src/goocanvasimage.c: use the above methods, so we can get rid of
	all the boilerplate code.

2006-11-29  Damon Chaplin  <damon@gnome.org>

	* demo/demo-item.[hc]: new demo item to show how to create new items.
	There's more boilerplate code than I'd like, but I don't know the best
	way to deal with it.

2006-11-29  Damon Chaplin  <damon@gnome.org>

	* */*: major rewrite to make the model optional, so people can choose
	to have either a simple canvas or a model/view canvas. (Many people
	found the model/view split awkward.) The standard items can be used
	in either scenario.

	Also added support for cascading styles, with arbitrary properties,
	and embedded widget items. I'm in the middle of adding support for
	layout items as well (e.g. something like a GtkTable for items).
	
2006-10-12  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastextview.c (goo_canvas_text_view_create_layout) 
	(goo_canvas_text_view_get_item_view_at) 
	(goo_canvas_text_view_paint): patch from Martin Soto to fix a text
	positioning bug. The position was wrong when the text width was set
	and the alignment wasn't PANGO_ALIGN_LEFT. (Pango uses the set width
	to calculate the text origin, but we were using the logical width.)

2006-10-12  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasutils.h: 
	* src/goocanvasprivate.h: make get_type() declarations public as
	they are useful for bindings.

2006-10-12  Damon Chaplin  <damon@gnome.org>

	Applied patch from Paul Davis to use glib_mkenums, slightly modified:

	* configure.in: use pkg-config to get the glib_genmarshal and
	glib_mkenums binaries.

	* src/Makefile.am: use glib_mkenums to generate goocanvasenums.[hc].

	* src/goocanvasutils.c: removed goo_canvas_pointer_events_get_type()
	and goo_canvas_item_visibility_get_type() as they're generated now.

	* src/goocanvasutils.h: removed get_type() declarations that are now
	in goocanvasenums.h, and modifed GooCanvasPointerEvents so glib_mkenums
	could parse it.

	* src/goocanvas.h: 
	* src/goocanvasitem.c: include goocanvasenums.h.

2006-10-12  Damon Chaplin  <damon@gnome.org>

	* src/goocanvaspolyline.h (struct _GooCanvasPoints): use a separate
	typedef declaration for the struct, to help C++ bindings. From Paul
	Davis.

	* src/goocanvaspath.c (goo_canvas_path_new): use 'const' for the
	path_data argument. From Paul Davis.

	* src/goocanvaspathview.c (goo_canvas_path_view_create_path): init
	last_control_point_x/y to avoid compiler warning.

2006-09-11  Damon Chaplin  <damon@gnome.org>

	* src/goocanvaspolylineview.c: be more careful about using points and
	arrow data.

	* demo/demo.c (setup_lines): add checks for polylines with 0 and 1
	points.

	* configure.in: require GTK+ 2.10.0, for GtkUnit (Gian Mario
	Tagliaretti).

2006-08-31  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c: added "units", "resolution-x" & "resolution-y"
	properties so we can support points, inches and millimeters being used
	for item units as well as just pixels. Thus you can create a complete
	WYSIWYG printable document. But note that you must use absolute units
	for font sizes, i.e. use "px" after the size in any font description
	strings, e.g. "Sans 10px".  That stops us scaling fonts twice.
	(goo_canvas_view_set_default_line_width): set a reasonable default
	line width according to the current units.

	* demo/units-demo.c: new demo showing different units in use.

2006-08-30  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_update) 
	* src/goocanvaspolylineview.c (goo_canvas_polyline_view_update): 
	added a workaround for cairo limits. Cairo uses fixed point integer
	maths and is currently limited to 16-bits for the integer component.
	So we remove any current translation before calculating the bounds
	of the item, then add it back to the results. This means the 16-bit
	limit only applies to items' user space rather than the entire canvas.

	* src/goocanvasitemviewsimple.c
	(goo_canvas_item_view_simple_get_item_view_at): 
	* src/goocanvaspolylineview.c
	(goo_canvas_polyline_view_get_item_view_at): as above, remove any
	current translation before checking if the point is in the item.

	* demo/scalability-demo.c: updated to create ~100,000 items, either
	rectangles or images. For images it now reuses a single cairo pattern
	rather than passing the pixbuf to the GooCanvasImage (which created a
	new pattern for each one and ran out of memory). It takes about 10
	seconds to setup the canvas which is slower than I'd like, but once
	created it seems to work fast enough.

2006-08-27  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_class_init): 
	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_class_init) 
	* src/goocanvasgroupview.c (goo_canvas_group_view_class_init): only
	register the accessible factories if accessibility is enabled (i.e.
	GtkWidget has registered a factory).

	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_setup_accessibility): 
	* src/goocanvasgroupview.c (goo_canvas_group_view_set_group): only
	set the accessible title & description and connect the signal handlers
	if accessibility is enabled. (It would be better to not call
	atk_gobject_accessible_for_object() at all, as it isn't useful.)

	* demo/scalability-demo.c: start of new demo/test for scalability.
	We are currently hitting the cairo 16-bit limit (transformed coords
	can't be larger than 16-bit ints). A workaround would be nice.
	I also want to profile it and see if there are any major bottlenecks.
	(Creating canvases with thousands of items is very slow, though
	scrolling etc. is OK as long as the canvas is split into groups.)

2006-08-24  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.4

2006-08-24  Damon Chaplin  <damon@gnome.org>

	* src/*.c: updated docs to point to goo_canvas_view_get_item_view() as
	a simple alternative for setting up signal handlers.

	* src/goocanvasview.c (goo_canvas_view_pointer_ungrab): only call
	gdk_display_pointer_ungrab() if we have an active pointer grab.
	So maybe we can now use goo_canvas_view_pointer_ungrab() to ungrab
	passive grabs on canvas item views (need to test this though).

2006-08-23  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c: keep an item_to_view hash table so apps can
	get the view for particular items (e.g. as an easy alternative for
	setting up signal handlers).
	(goo_canvas_view_get_item_view): new function to get the item view for
	a given item.
	(goo_canvas_view_unregister_item_view): new function that implementors
	of GooCanvasItemView should call in their finalize method to unregister
	the view (so the GooCanvasView removes it from the hash table.)
	(goo_canvas_view_create_item_view): add the new item view to the
	item_to_view hash table.

	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_finalize):
	* src/goocanvasgroupview.c (goo_canvas_group_view_finalize): unregister
	the item view.
	(goo_canvas_group_view_set_parent_view): don't change the canvas view
	here any more, since we don't support that.

	* demo/simple-demo.c: updated to use simple signal handler setup.

2006-08-22  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_class_init): 2 minor fixes for
	the docs (from Gian Mario Tagliaretti).

2006-08-15  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasutils.h: moved GOO_TYPE_CAIRO_PATTERN stuff here, so
	bindings can use it.
	Also renamed goo_cairo_line_dash stuff to goo_canvas_line_dash for
	consistency.

	* src/goocanvasutils.c (goo_canvas_line_dash_newv): new non-varargs
	variant of function of goo_canvas_line_dash_new() for bindings.
	(from Gustavo J. A. M. Carneiro.)

2006-08-14  Damon Chaplin  <damon@gnome.org>

	* Makefile.am: require automake 1.7, since it is needed for
	glib-genmarshal (from Gian Mario Tagliaretti).

2006-08-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastextview.c (goo_canvas_text_view_update): 
	* src/goocanvaspolylineview.c (goo_canvas_polyline_view_update): 
	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_update): 
	* src/goocanvasimageview.c (goo_canvas_image_view_update): 
	* src/goocanvasgroupview.c (goo_canvas_group_view_update): rewrote the
	update methods to make sure the bounds is always set and returned
	correctly.

2006-07-26  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasgroup.[hc]: added goo_canvas_group_set_model() function,
	to set the model of the root group.
	* src/goocanvasmodelsimple.c (goo_canvas_model_simple_init): use the
	above function.

	* src/goocanvas*view.c: support an optional transformation matrix for
	each view, which is combined with the underlying item's transform.
	(I'm not sure if this will overcomplicate things.)

	* src/goocanvasgroupview.c: support generic GooCanvasItems as the
	underlying group rather than just GooCanvasGroups. This allows us to
	use subclasses of GooCanvasGroupView easily.
	(goo_canvas_group_view_set_group): new function to set the underlying
	group item, creating child views and setting up signal handlers etc.

2006-07-21  Damon Chaplin  <damon@gnome.org>

	* src/goocanvas*view.c: renamed get_item_at() methods to
	get_item_view_at().

	* src/goocanvasview.c (goo_canvas_view_get_root_view): new function
	to return the root view.
	(goo_canvas_view_get_item_view_at): new function to return the item
	view at a given point.

2006-07-19  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasatk.c:
	* src/goocanvasgroupview.c:
	* src/goocanvasimageview.c:
	* src/goocanvasitemview.c:
	* src/goocanvasitemview.h:
	* src/goocanvasitemviewsimple.c:
	* src/goocanvaspolylineview.c:
	* src/goocanvastextview.c:
	* src/goocanvasview.c: changed item view update() and get_bounds()
	methods to take a GooCanvasBounds* to fill in, rather than returning
	a pointer to a static GooCanvasBounds. This makes it easier for
	language bindings.

2006-07-19  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_scroll): handle scroll events
	ourselves, in case we aren't placed directly in a scrolled window.

	* src/goocanvasitem.c (goo_canvas_item_get_transform): if the item
	doesn't support this method just return NULL.

	* demo/demo-fifteen.c: use generic goo_canvas_item_view_get_item()
	method to get the item rather than private struct members.

	* configure.in: depend on glib 2.10.0 (from Gian Mario Tagliaretti).

	* src/goocanvasutils.c (goo_canvas_pointer_events_get_type): use a
	flags type rather than an enum type (from Gustavo J. A. M. Carneiro).

	* src/goocanvasitem.c (goo_canvas_item_base_init): 
	* src/goocanvasitemsimple.c: 
	* src/goocanvasgroup.c: updated to use the flags type for
	"pointer-events" instead of enum.

 	* src/goocanvasprivate.h:
 	* src/goocanvasutils.h: The type GOO_TYPE_CAIRO_MATRIX is used in
 	a public interface (a property in the GooCanvasItem interface),
 	therefore it has to be public (from Gustavo J. A. M. Carneiro).

2006-06-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_set_property): 
	only create the item's style when needed.
	(goo_canvas_style_get_type): register boxed type (from Gustavo J. A. M.
	Carneiro).

2006-06-01  Damon Chaplin  <damon@gnome.org>

	* demo/demo.c: only add the "Output PDF" option if cairo has PDF
	support compiled in.

2006-05-27  Damon Chaplin  <damon@gnome.org>

	* src/*.c: removed ';' after all G_DEFINE_TYPE* macros.

2006-05-27  Damon Chaplin  <damon@gnome.org>

	* autogen.sh: check for AC_CONFIG_HEADER as well as old AM_*.

2006-05-16  Damon Chaplin  <damon@gnome.org>

	* goocanvas.pc.in: 
	* Makefile.am: 
	* configure.in: added .pc file (patch from Gian Mario Tagliaretti).

2006-05-12  Damon Chaplin  <damon@gnome.org>

	* src/goocanvastextview.c (goo_canvas_text_view_create_layout): if
	there is no text return an empty layout rather than NULL.
	(goo_canvas_text_view_get_item_at): check if there is no text first.

	* src/goocanvasitemsimple.[hc]: rename operator to op since operator
	is a C++ keyword (reported by Yevgen Muntyan).

2006-04-24  Damon Chaplin  <damon@gnome.org>

	* Released GooCanvas 0.3

2006-04-24  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c: added "model", "scale", "anchor", "x1", "y1",
	"x2", "y2" properties, and goo_canvas_view_get_bounds() and
	goo_canvas_view_get_scale() accessors.
	Removed goo_canvas_view_set_anchor() as the property should be enough.
	(I think we should only have accessor functions for major properties.)

	* src/goocanvasitemview.c (goo_canvas_item_view_is_visible) 
	(goo_canvas_item_view_get_item_at): removed scale argument. We get it
	from the canvas view now, to make the API a little simpler.

	* src/goocanvasitemviewsimple.h (struct _GooCanvasItemViewSimple): 
	added pointer to the canvas view.

	* src/*view.[hc]: added canvas view argument to all view creation
	functions.

2006-04-23  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_focus): scroll to show the new
	focused item if necessary.
	(goo_canvas_view_set_model): set need_update to TRUE.
	(goo_canvas_view_focus_check_is_best): try to avoid wild jumps when
	moving around with the cursor keys.

2006-04-22  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c: added support for keyboard focus navigation.
	(I still need to make it scroll to show the focused item if needed.)

	* demo/demo-focus.c: new demo page to test keyboard focus navigation.

	* src/goocanvasitemview.c: added "focus-in-event" & "focus-out-event"
	signals.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_path_bounds): 
	make sure we do min/max over all points of bounds.

	* src/goocanvasview.c (goo_canvas_view_focus_out): emit
	"focus_out_event", not "focus_in_event".

2006-04-19  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.c (goo_canvas_item_base_init): added "title" and
	"description" properties for accessibility. Note that we only support
	per-item settings for the standard canvas items, though more complex
	items may want to support per-view settings.

	* src/goocanvasitemsimple.c: 
	* src/goocanvasgroup.c: implemented "title" and "description"
	properties.

	* src/goocanvas*view.c: set the accessible name & description based
	on the item's settings, and update them if changed.

	* src/goocanvasatk.c (goo_canvas_item_view_accessible_ref_child): 
	return the accessible rather than the item view.

2006-04-18  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_get_model): new function.
	(goo_canvas_view_adjustment_value_changed): emit "visible_data_changed"
	on accessible object.
	(goo_canvas_view_init): initialize default bounds, and create default
	adjustments.

	* src/goocanvasitemview.[hc]: added new is_visible() method, and
	"can-focus" property, and convenience find_child() function.

	* src/goocanvasitemviewsimple.c: implemented "can-focus" property
	and "is_visible" method.

	* src/goocanvasgroupview.c: implemented "can-focus" property and
	"is_visible" method, and used same flags field as
	GooCanvasItemViewSimple.

	* src/goocanvasatk.[c]: new files to support accessibility. Most of
	the code has been copied from foocanvas & libgnomecanvas, with slight
	changes to handle our model/view split.

	* src/goocanvasitemviewsimple.c (goo_canvas_item_view_simple_finalize):
	chain up to parent's finalize method.

2006-04-16  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (propagate_event, emit_pointer_event): ref views
	and check they are still valid.

	* src/*view.[hc]: made views hold reference on items, to ensure we
	never use invalid pointers.

2006-04-16  Damon Chaplin  <damon@gnome.org>

	* demo/simple-demo.c: new very simple demo, also used in docs.

	* src/goocanvasitemviewsimple.[hc]: new base class for item views,
	so we can share a lot of the common code.

	* src/*view.[hc]: updated item views to be a subclass of above.

	* src/*.c: removed lots of unused debugging code.

	* src/goocanvasitem.c: 
	* src/goocanvasitemsimple.c: 
	* src/goocanvasgroup.c: moved "pointer-events" and "transform"
	properties, and the "changed" signal to the GooCanvasItem interface.

	* src/*.[hc]: updated use of above.

2006-04-14  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c: documented GooCanvasView, though it needs an
	overview and demo code.

	* src/*.[hc]: documented most of the core objects.

	* src/goocanvasutils.h: renamed goo_cairo_dash* to goo_canvas_dash*
	for consistency.

	* src/goocanvasprivate.h: new header to contain private declarations
	that we don't install.

	* src/*.[hc]: documented enums & structs on the types page.

2006-04-13  Damon Chaplin  <damon@gnome.org>

	* src/*.[hc]: documented views for standard items.

	* src/*.[hc]: documented standard items.

2006-04-12  Damon Chaplin  <damon@gnome.org>

	* configure.in: updated to use newer forms of macros.

	* COPYING: added LGPL license.

	* src/Makefile.am (libgoocanvasincludedir): install headers into
	$(includedir)/goocanvas-1.0 rather than $(includedir)/libgoocanvas-1.0.

	* demo/*: moved all the demo code here.

	* src/goocanvas.h: new main header to include all the public headers.

	* autogen.sh: 
	* configure.in: 
	* Makefile.am: setup to use gtk-doc.

	* src/Makefile.am: build libgoocanvas as a library now, so we can
	document it with gtk-doc. The demo will be moved to a separate
	directory.

	* src/goocanvastext.h: 
	* src/goocanvasitem.h: rename a few parameters to match the sources,
	since gtk-doc complains if they are different.

2006-04-11  Damon Chaplin  <damon@gnome.org>

	* src/demo-paths.c (create_paths): added more arc tests.

	* src/goocanvaspathview.c: finished the elliptical arc and split
	up the create_path() function a bit.

2006-04-10  Damon Chaplin  <damon@gnome.org>

	* src/goocanvaspathview.[hc]: 
	* src/goocanvaspath.[hc]: new path item and view, that uses the same
	path spec strings as SVG. I think everything works, except the
	elliptical arc, which I haven't finished yet.

	* src/demo-paths.c: new demo page to test paths.

2006-04-08  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemsimple.[hc]: 
	* src/goocanvasgroup.[hc]: added "pointer-events" property, like SVG.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_get_path_bounds): 
	changed to include both the stroke and fill extents, even if they will
	not be painted. This is needed to handle the "pointer-events" property.

	* src/goocanvasitemsimple.c (goo_canvas_item_simple_check_in_path): 
	added "pointer_events" argument, to specify which parts of the path
	to check.

	* src/goocanvasitemview.[hc]: change get_item_at() to take
	"is_pointer_event", "parent_visible", and "scale" properties, so we
	can handle the "pointer-events" property.

	* src/goocanvasgroupview.c (goo_canvas_group_view_get_item_at): 
	* src/goocanvasellipseview.c (goo_canvas_ellipse_view_get_item_at): 
	* src/goocanvasimageview.c (goo_canvas_image_view_get_item_at): 
	* src/goocanvaspolylineview.c (goo_canvas_polyline_view_get_item_at): 
	* src/goocanvasrectview.c (goo_canvas_rect_view_get_item_at): 
	* src/goocanvastextview.c (goo_canvas_text_view_get_item_at): updated
	to support "pointer-events".

	* src/goocanvasutils.[hc]: added GooCanvasPointerEvents enum, and
	goo_cairo_line_dash_new().

	* src/demo-events.c: new demo page to test "pointer-events" property.

	* src/goocanvastextview.c (goo_canvas_text_view_paint): if the fill
	pattern	has been explicitly set to NULL, don't paint the text.

2006-04-03  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_style_set) 
	(goo_canvas_view_realize): use the base color for the background.

	* src/demo.c (create_canvas_primitives): use gtk_widget_modify_base()
	to test setting the background color.

2006-03-24  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitemview.c (goo_canvas_item_view_ensure_updated): new
	convenience function to do an immediate update.

	* src/goocanvasview.c (goo_canvas_view_update): turned this into a
	public function for use by the above.

	* src/goocanvastextview.c (goo_canvas_text_view_get_bounds) 
	(goo_canvas_text_view_get_item_at): 
	* src/goocanvasrectview.c (goo_canvas_rect_view_get_bounds) 
	(goo_canvas_rect_view_get_item_at): 
	* src/goocanvaspolylineview.c (goo_canvas_polyline_view_get_bounds) 
	(goo_canvas_polyline_view_get_item_at): 
	* src/goocanvasgroupview.c (goo_canvas_group_view_get_bounds) 
	(goo_canvas_group_view_get_item_at): 
	* src/goocanvasimageview.c (goo_canvas_image_view_get_bounds) 
	(goo_canvas_image_view_get_item_at): 
	* src/goocanvasellipseview.c (goo_canvas_ellipse_view_get_bounds) 
	(goo_canvas_ellipse_view_get_item_at): make sure the canvas is updated
	first, if needed.

2006-03-24  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_render): new function to
	render all or part of the canvas to a given cairo context.

	* src/demo.c: added "Write PDF" test, that creates a pdf file
	containing the main canvas.

	* src/goocanvasview.[hc]: used a GooCanvasBounds rather than left,
	right, top, bottom for the bounds. Also renamed "pixels_per_unit"
	to "scale".

	* src/goocanvasitemview.[hc]: 
	* src/goocanvastextview.c (goo_canvas_text_view_paint): 
	* src/goocanvasgroupview.c (goo_canvas_group_view_paint): 
	* src/goocanvasellipseview.c (goo_canvas_ellipse_view_paint): 
	* src/goocanvasimageview.c (goo_canvas_image_view_paint): 
	* src/goocanvaspolylineview.c (goo_canvas_polyline_view_paint): we
	now just pass the effective scale to the paint function rather than the
	GooCanvasView*, since when rendering to an arbitrary cairo_t we may not
	want to use a different effective scale (to determine which items are
	shown). (Also fixed some of the visibility checks.)

2006-03-23  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasitem.c: added new "visibility" and
	"visibility-threshold" properties to specify when an item should be
	visible (always, never, or above a certain scale threshold).

	* src/goocanvasutils.[hc]: added GooCanvasItemVisibility enum stuff.

	* src/goocanvasitemsimple.[hc]: 
	* src/goocanvasgroup.[hc]: implemented new properties.

	* src/goocanvasgroupview.c (goo_canvas_group_view_paint): 
	* src/goocanvastextview.c (goo_canvas_text_view_paint): 
	* src/goocanvasrectview.c (goo_canvas_rect_view_paint): 
	* src/goocanvasimageview.c (goo_canvas_image_view_paint): 
	* src/goocanvasellipseview.c (goo_canvas_ellipse_view_paint): check
	the visibility settings to see if the items should be painted.

	* src/demo.c (setup_invisible_texts): added test for visibility
	settings.

	* src/goocanvasitem.[hc] (goo_canvas_item_create_view): removed this as
	it is mainly an internal function and the interface can be used
	directly instead where needed.

2006-03-23  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.c (goo_canvas_view_scroll_to): freeze the canvas
	while setting the adjustments so we don't redraw twice.

2006-03-22  Damon Chaplin  <damon@gnome.org>

	* src/goocanvasview.[hc]: convert to a subclass of GtkContainer rather
	than GtkLayout, since the layout code didn't help much and just added
	to the confusion. (Getting scrolling/zooming to work smoothly  is
	pretty difficult.)

	Added a goo_canvas_view_scroll_to() function to scroll to a desired
	position.
	
	Added an anchor setting to specify where to place the contents of the
	canvas if it is smaller than the allocated widget area. (Like the
	"center_scroll_region" setting in GnomeCanvas but a bit more general.)

	Mapped a temporary window above the canvas when zooming in/out to
	stop X from scrolling the canvas contents before it is redrawn.
	(Idea pinched from FooCanvas.) Though this could possibly cause
	problems with keyboard input in future, in which case I think we should
	drop the fancy window scrolling stuff and just scroll ourselves.

	Added an internal freeze_count like GtkLayout used to have. This is
	used while reconfiguring the scrollbars etc. so we don't scroll more
	than once (e.g. horizontally then vertically).

	Added coordinate conversion functions to convert between device units
	and canvas item units or pixels.

	* src/goocanvastextview.[hc]: create a cairo_font_options_t object in
	the class init function and use it for all created PangoLayouts.
	This ensures that text is layed out the same at any scale, which
	also avoids the problems with items not being redrawn properly
	(since the bounds were slightly wrong). Note that I was using
	cairo_set_font_options(cr) before, but that isn't picked up by Pango
	so didn't work. (Font options seem to be associated with surfaces and
	also with the graphics state which is confusing.)