Tag Archives: GTK+

GTK+ 반투명 배경 만들기 (OSD 효과)

PyGTK를 이용해 데스크탑 위젯을 만드는 블로그를 보고 이를 C 언어로 바꾸어 보았습니다. Compiz나 Metacity의 컴포지팅(compositing) 기능이 활성화되어 있을 경우에만 제대로 동작합니다. 먼저 스크린샷부터.

여기서 사용한 기법을 요약하면, 윈도우 바탕에 RGBA 컬러맵을 할당하고 배경화면을 직접 그리도록 설정한뒤 “expose-event” 발생시 Cairo API를 이용하여 원하는 투명 배경을 그리는 겁니다. 소스 코드는 다음과 같습니다.
#include <gtk/gtk.h>

static void
make_desktop_window (GtkWidget *window)
{
gtk_window_set_type_hint [...] Continue reading

Posted in Development | Tagged | Comments Off

GooCanvas 라이브러리에서 툴팁 모양 Polygon 생성하기

Canvas 위에 정보를 표시하는 인터페이스로 Google map 과 비슷하게 툴팁 모양을 생각해 볼수 있는데 이를 위해서는 GooCanvasPolyline을 이용하면 됩니다. 예제에는 polyline을 그룹으로 관리하는 방식과 points 구조체를 이용하여 하나의 polyline을 구성하는 방식을 테스트 했습니다. 처음 방식은 툴팁내부의 색상을 “fill-color” 속성으로 영역을 … Continue reading

Posted in Development | Tagged , | Leave a comment

GooCanvas 라이브러리에서 마우스 이벤트 처리와 에니메이션 효과 주기

이전에 설명한 이미지 파일을 보여주는 부분을 활용하여 작은 아이콘 이미지 를 배경 위에 표시하고 이 아이콘을 마우스로 움직이도록 하는 간단한 코드를 작성해 보도록 하겠습니다. GooCanvasItem 은 마우스 이벤트를 처리할 수 있는 singal 이 연결되어 있습니다. 이중 “motion_notify_event”, “button_press_event”, “button_release_event” 를 … Continue reading

Posted in Development | Tagged , | Leave a comment

GooCanvas 라이브러리를 이용하여 배경 이미지 그리기

가장 처음으로 png 파일로 부터 배경이미지를 표시하는 작업을 진행합니다. 테스트 코드 컴파일을 위해서는 라이브러리 설치가 필요합니다. 이 문서에서는 Ubuntu 배포판을 기준으로 설명하도록 하겠습니다. libgoocanvas-common libgoocanvas-dev libgoocanvas3 위 패키지를 설치하고  간단히 라이브러리 path를 이용하여 컴파일 하면 됩니다. “pkg-config –cflags –libs goocanvas” … Continue reading

Posted in Development | Tagged , | Leave a comment

GooCanvas 라이브러리 소개

GooCanvas는 Gtk+ 기반의 2D Draw 기능을 수행하는 위젯기반 라이브러리입니다. 내부적으로 Cairo 라이브러리를 이용하고 있으며 기본 위젯인 GooCanvas 는 GtkContainer 를 상속받아 작성되어 있습니다. 모델/뷰 개념을 라이브러리에서 지원하고 있어 실제 화면에 보여지는 부분의 갱신이 필요할 경우 미리 생성해 놓은 모델을 바로 … Continue reading

Posted in Development | Tagged , | Leave a comment