2011-02-22 1 views
1

현재 여러 화면에 걸쳐있는 다중 창 응용 프로그램을 작성 중입니다. 이 소프트웨어는 xlib로 작성되었으며 우분투 10.10, 그놈 데스크탑에서 실행됩니다. 모든 윈도우의 위치를 ​​얻으려면 /etc/X11/xorg.conf 파일에 액세스하고 싶습니다. 특히 섹션 SeverLayout. 그것은 다음과 같이 어떻게 든 같습니다xorg.conf를 가져 오십시오. serverLayout with C++

Section "ServerLayout" 
    Identifier "aticonfig Layout" 
    Screen  "screen0" 0 0 
    Screen  "screen1" 1920 0 
    Screen  "screen2" 3840 0 
    Screen  "screen3" 5760 0 
EndSection 

(0, 1920, ...) Xlib를 어떻게 든이 정보에 대한 액세스를 제공 하는가 나는 각 화면의 X 값을 좀하고 싶습니다?

감사

+0

"각 화면의 X 값"에서 정확히 무엇을 고려합니까? –

+0

X 값은 화면의 절대 x 좌표를 의미합니다. 이 경우 0, 1920, 3840 및 5760 – underdoeg

답변

0

X에서 여러 모니터의 레이아웃에 대한 정보, 특히 단일 논리 화면으로 결합 된 경우 libXrandrlibXinerama API를 통해 사용할 수 있습니다. 안타깝게도 버전 1.2의 libXrandr에 추가 된 멀티 스크린 API는 설명서 페이지에서는 다루지 않지만 extension specXrandr.h header file을 살펴볼 필요가 있습니다.

0

당신은 XWidthOfScreen 및 XHeightOfScreen 기능을 사용할 수 있습니다.

적절한 화면 구조를 얻기 위해 XScreenCount (화면 수를 얻기 위해)와 XScreenOfDisplay를 사용하십시오.

더 좋은 방법은 화면의 루트 창을 가져 와서 XParseGeometry 함수를 사용하여 지오메트리를 구문 분석하는 것입니다.

+0

답장을 보내 주셔서 감사합니다. 나는 그걸 들여다 보았다. 그러나 그것은 여전히 ​​나에게 스크린 좌표를주지 않을 것이다. 물론이 예제에서는 screen0.x * screen0.width를 계산하여 screen1.x를 얻을 수 있지만 원하는대로 윈도우를 정렬 할 수있는 유연성을 유지하려고합니다. – underdoeg

+0

@philip 업데이트 답변. XParseGeometry는 화면 좌표를 제공해야합니다. –