[c++] libXScrnSaver API 문서

libXScrnSaver는 X Window System 환경에서 화면 보호기를 설정하고 제어하기 위한 라이브러리입니다. 해당 API를 사용하여 화면 보호기를 활성화하거나 비활성화하고, 관련된 설정을 변경할 수 있습니다.

함수

XScreenSaverAllocInfo()

XScreenSaverInfo *XScreenSaverAllocInfo(void);

이 함수는 XScreenSaverInfo 구조체를 할당하고 초기화한 후 포인터를 반환합니다.

XScreenSaverQueryInfo()

Status XScreenSaverQueryInfo(Display *display, Drawable drawable, XScreenSaverInfo *info_return);

이 함수는 지정된 윈도우 또는 픽맵의 화면 보호기 정보를 쿼리하고 결과를 XScreenSaverInfo 구조체에 저장합니다.

XScreenSaverQueryExtension()

Bool XScreenSaverQueryExtension(Display *display, int *event_base_return, int *error_base_return);

이 함수는 화면 보호기 확장이 서버에서 사용 가능한지 확인합니다.

XScreenSaverSelectInput()

void XScreenSaverSelectInput(Display *display, Drawable drawable, unsigned long event_mask);

이 함수는 지정된 drawable에 대한 화면 보호기 이벤트를 선택하고 관련 이벤트를 받도록 합니다.

사용 예시

#include <X11/extensions/scrnsaver.h>

void disableScreenSaver(Display *display, Window window) {
    XScreenSaverSuspend(display, False);
    XSetScreenSaver(display, 0, 0, PreferBlanking, AllowExposures);
    XScreenSaverSelectInput(display, window, ScreenSaverNotifyMask);
}

위의 코드는 화면 보호기를 비활성화하고, 화면 보호기 설정을 변경한 후 지정된 윈도우에 대한 화면 보호기 이벤트를 선택하는 예시입니다.

참고 자료