GooCanvas는 Gtk+ 기반의 2D Draw 기능을 수행하는 위젯기반 라이브러리입니다.
내부적으로 Cairo 라이브러리를 이용하고 있으며 기본 위젯인 GooCanvas 는 GtkContainer 를 상속받아 작성되어 있습니다. 모델/뷰 개념을 라이브러리에서 지원하고 있어 실제 화면에 보여지는 부분의 갱신이 필요할 경우 미리 생성해 놓은 모델을 바로 drawing 하도록 하여 새로운 이미지로의 변경이 용이할 것으로 보입니다.
각 이미지 primitive를 item 으로 지칭하며, 이 item 들은 GObject에서 상속된 GooCanvasItemSimple 객체로 부터 파생됩니다. 각 item 들은 해당 속성은 가지고 있지만, 기본 이벤트는 가지고 있지 않습니다. 이후 작업에서 GObject 의 이벤트를 이용하여 필요시 이벤트를 등록 사용하게 됩니다.
이 라이브러리의 특징을 살펴보면 다음의 기능및 특징을 가지고 있습니다.
- 모델/뷰 개념 지원
- 기본 항목으로 rect/ellipse/polyline/text/image/grid/group
- 다각형/호 등을 지원하기 위한 path 를 지원
- GtkTable Widget 과 같은 layout table 지원
- Gtk+ Widget 내포
- 동일 위치의 화면에 보이는 item 순서 조절
- 모든 항목에 대한 변형(Transformation)이 가능 – cairo_matrix 를 이용
- 이벤트 핸들링 지원
- Scrolling/Zooming 지원
- 캔버스의 크기가 변경되더라고 정적 item 은 크기를 조정
- 특정 크기 이하에서는 아이템이 보이지 않도록 조정 가능
- 간단한 에니메이션 효과
- 여러 단위(Units) 지원 – pixels/points/inches/millimeters
이 라이브러리에 대한 자세한 내용은 http://live.gnome.org/GooCanvas 에서 확인 할 수 있습니다.

This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.0 Korea License.