관련링크
참여자
-
Recent Posts
- 모니터 없이 X 서버 실행 후 나중에 모니터 연결해도 화면이 안보인다면
- Sentry24DVR 2.7-4 (2011.11.28) Release
- Sentry24CMS 2.1-9 (2011.11.18) Release
- Arch Linux에 WireShark 설치
- ClutterGst 메모리 누수 디버깅
- 클러터(Clutter) 사용기
- Sentry24DVR 2.7-3 (2011.09.02) Release
- GNOME 개발 설명서 / 동영상
- eventfd 소개
- Sentry24DVR 2.7-2 / 2.6-11 (2011.07.07) Release
- Vala 언어 소개
- 라자냐 코드 (Lasagna Code)
- Sentry24DVR 2.7-1 (2011.06.10) Release
- PCD – Process Control Daemon
- Sentry24DVR 2.6-10 / 2.5-12 / 2.4-39 (2011.05.30) Release
Tags
Agile Android ArchLinux Clutter Coding CPAN Debug Diag Eclipse Embedded FontConfig GCC Git GLib glibc GNOME GooCanvas GStreamer GTK+ GUI Hangul Inotify iphone Kernel Linux Log::Simple::Color MacOSX Network News @en ONVIF Perl Release Schedule Shell Sqlite SSH Strace Ubuntu Udev Web Windows Wireshark Wordpress Xorg 카스탈리엔Archives
- January 2012
- November 2011
- October 2011
- September 2011
- July 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- September 2008
- August 2008
- July 2008
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
Tag Archives: GLib
ExoBinding 소개
Xfce 프로젝트에서 사용하는 라이브러리에 포함되어 있는 ExoBinding 이라는 (객체)함수가 있는데, 매우 흥미로워서 소개합니다. (참고로, ‘ExoBinding and Settings Management‘ 블로그를 통해 알게된 내용입니다)
ExoBinding 함수는 기본적으로 GObject 기반 두 객체의 속성(properties) 값을 동기화합니다. 즉, 속성을 묶는(binding) 역할을 합니다. 속성 묶음(binding)의 한쪽 속성이 바뀌면 다른쪽 속성을 자동적으로 새로운 값으로 변경합니다. 단방향(uni-directional) 뿐 아니라 상호(mutual) 바인딩도 지원하는데, 필요할 경우 변환(transform) [...] Continue reading
GTK+ / GLib 경고 메시지 추적하기
GTK+ 또는 GLib 기반 프로그래밍을 할때 g_warning() / g_return_if_fail() 등과 같은 API를 사용한 경고 메시지가 어디서 발생했는지 찾기 어려운 경우가 있습니다. 더 나아가 해당 함수를 호출하는 부분을 알아야 하는데, 사실 메시지만으로는 찾기가 매우 어려운 경우가 많습니다.
예를 들어 수만라인짜리 프로그램이 실행 도중 다음과 같은 메시지를 출력합니다.
Gtk-CRITICAL **: gtk_widget_set_sensitive: \
assertion `GTK_IS_WIDGET (widget)’ failed
아, gtk_widget_set_sensitive() 함수를 호출할때 첫번째 [...] Continue reading
GLib 쓰레드 프로그래밍
소프트웨어를 개발하면서 멀티 쓰레드 방식을 사용하는 경우는 많습니다. 하지만 그만큼 복잡도가 증가해서 세심하게 고려하여 설계하지 않으면 디버깅 재앙을 얻는 경우가 많습니다. 이 글은 ‘멀티쓰레드 프로그래밍 규칙‘에서 이어지는 내용입니다. GTK+ 쓰레드 관련 잡설은 이미 언급한 적이 있으니까, 오늘은 별도의 쓰레드로 동작하는 간단한 예제 모듈을 만들면서 몇가지 유용한 GLib 쓰레드 API를 설명하겠습니다.
리소스 (Resources)
한 개 이상의 쓰레드가 동작하는 [...] Continue reading
Glade 카탈로그 작성 / 설치하기
글레이드(Glade) 매뉴얼에서 카탈로그(Catalog) 소개 부분을 날림 번역한 내용입니다.
소개 (Introduction)
사용자 위젯은 여러 방법으로 지원할 수 있는데, 패키지를 만들어 이를 시스템 디렉토리에 설치하거나, 사용자 디렉토리 또는 프로젝트 디렉토리에서 직접 추가적인 카탈로그를 읽어들일 수 있습니다. 라이브러리에 보이는 객체 종류(object type)를 나타내기 위해 필요한 아이콘(icons)을 지원하는 코드를 만들수도 있고, 다음에 설명할 부모(parent) 속성(property)을 이용하여 처리할 수도 있습니다. 인스펙터(inspector)와 [...] Continue reading
GtkTreeModel 확장하기
GTK+ 프로그래밍에서 많이 사용하는 GtkTreeModel(GtkListStore / GtkTreeStore)에는 일반적으로 데이터(객체)에서 표시할 내용만 추가해서 사용합니다. 따라서 실제로 데이터가 변경되면 그때마다 GtkTreeModel 내용을 변경해주어야 합니다.(일종의 동기화) 하지만 이러한 프로그래밍 방식은 매우 귀찮고 개발 시간도 오래 걸리는 것은 물론 런타임 오버헤드도 발생할 수 밖에 없습니다. 아예 GtkTreeModel에서 하나의 컬럼에 데이터(객체)를 넣고 관리하는 방법도 있지만, 이 역시 이러한 오버헤드와 비효율은 [...] Continue reading