2009-06-10 5 views
0

저는 라이브러리에 대한 데모 응용 프로그램을 제작 중이며, libCanberra를 통해 오디오 이벤트를 실행하는 그놈 응용 프로그램에서 사용자가 시각적 이벤트를 선택하여이를 대체 할 수 있도록 허용하고 있습니다. 이것은 시각 장애가있는 사용자와 청각 장애가있는 사용자가 모두 오디오 경고 등의 이점을 얻도록 돕는 접근하기 쉬운 노력입니다.GTK 또는 GDK를 통해 화면에 직접 그려야합니다.

첫 번째 데모에서는 우리의 간단한 GTK 샘플 응용 프로그램에서 버튼을 누르면 전체 화면이 색상으로 깜박입니다. 필자는 GTK 문서를보고 있었고, 필자가 본 모든 그림은 창이나 다른 위젯에 직접 그려야 만했습니다. 전체 화면의 색조를 제어하고 싶습니다. 이것이 GDK일까요? 나는 기지에서 완전히 벗어 났는가?

모든 링크/도움을 많이 주시면 감사하겠습니다! 감사.

추신 : 이것은 적절한 바인딩이있는 언어간에 기능이 동일해야하지만, C로 작성되었습니다.

답변

2

수 없습니다. 응용 프로그램은 자체 창에만 액세스 할 수 있으며 다른 창이나 화면에 대해 알지 못합니다. "화면"은 백엔드 GTK가 사용하는 모든 것이 관리합니다 (X? Win32? DirectFB?).

즉, 전체 화면 영역을 포함하는 "전체 화면"창을 만들 수 있습니다. 이것이 대부분의 윈도우 시스템에서 전체 화면 응용 프로그램이 구현되는 방식입니다.

+0

아래에 무엇이 보이는지 만 보여주는 전체 화면 창을 페인트하는 것처럼주의하십시오. Compiz와 같은 합성 관리자 문제가 발생할 수 있습니다. – MighMoS

+0

@MighMoS 및 stormsoul 당신이 정교하게 이야기 해 주시겠습니까? Noi는 모든 모니터를 커버하는 단일 창을 만들 필요가있는 상황에 처해 있습니다. http://stackoverflow.com/questions/31366706/gtk-window-cover-entire- 화면 – yatg

0

GTK에는 AFAIK 옵션이 없으므로 아마도 백엔드 : Xlib (또는 Xcb)를 사용하고 싶을 것입니다.

+0

응답 해 주셔서 감사합니다. 특정 부분에 대해 Xlib을 배울 시간이 없기 때문에 GDK를 통해 완전히 투명한 창을 만들어 프로젝트 반복에 대해 살펴 보았습니다. 불행하게도이 작업을 수행하려면 사용자가 합성 기능을 사용할 수 있어야하지만 그렇지 않은 사용자를 위해 동일한 솔루션을 만들었습니다. 즉, 그것은 다소 효과가있다. – RyanG

관련 문제