2014-12-21 3 views
0

나는 리눅스 코드에서 js-ctypes에 이르기까지 스크린 세이버 용 테스트를 변환하고있다.X11의 메뉴 열거 기능?

X11을 많이 사용하지만 메뉴 기능을 찾을 수 없습니다.

1012  XMenuList::GetInstance()->InsertMenuWindowXIDs(&windows); 
1013  // Enumerate the menus first. 
1014  for (iter = windows.begin(); iter != windows.end(); iter++) { 
1015  if (delegate->ShouldStopIterating(*iter)) 
1016   return true; 
1017  } 
1018  windows.clear(); 

이 코드는 여기있다 :

내가 변환을 시도하고 코드입니다 기본적으로 http://mxr.mozilla.org/chromium/source/src/ui/base/x/x11_util.cc#1012

창을 열거하려고 메신저하지만 화면 보호기를 찾을 때 그들도 메뉴를 확인하십시오.

나는이 메모 건너 온 :

X11, 그 자체로 메뉴를하지 않습니다. 그래서 GTK, Qt, Motif 등과 같은 툴킷이 만들어졌습니다.

http://www.linuxquestions.org/questions/programming-9/x11-menus-how-to-839904/

내가 다른 또 다른 라이브러리를 ctypes.open한다이 평균은 X11은 사람이하는 일을 알고 있나 있습니까? 나는 못 찾는다. 원본 here 보면 http://www.xfree86.org/4.4.0/manindex3.html

+1

어떤 메뉴를 의미하는지 명확하지 않습니다. X11에는 메뉴에 대한 개념이 없습니다. 툴킷은 프로그램을 도와 * 메뉴를 구현하고, X 서버에 메뉴를 도입하지 않으며, 다른 프로그램에 의해 구현 된 메뉴를 감지하는데도 도움이되지 않습니다. "X11 메뉴 열기"란 무엇을 의미합니까? –

+1

[여기] (http://mxr.mozilla.org/chromium/source/src/ui/base/x/x11_menu_list.h#39)를 보면 알 수 있듯이 모질라 용 메뉴는 '_NET_WM_WINDOW_TYPE' 속성이'_NET_WM_WINDOW_TYPE_MENU'로 설정된 윈도우. 기본 응용 프로그램에서 찢어져서 바탕 화면에 고정 된 메뉴입니다. 이것을 탐지하기 위해 특별한 라이브러리가 필요하지 않습니다. 단지 일반적인 속성 조작 함수를 사용하십시오. 나는 왜 스크린 세이버가 그렇게 필요한지 이해하지 못한다. –

+0

감사합니다. !! !! 왜 구글 크롬이 "열거 식 메뉴 1"PLZ 위의 코드를 수행하는지 아는 경우 다른 사람 : – Noitidart

답변

2

, 당신이 볼 수

감사

이 진행중인 내 코드입니다 : https://github.com/Noitidart/_scratchpad/blob/master/ScreensaverWindowExists.js#L365

이 X11 기능을 위해 사용 freedocs 페이지 메신저입니다 메뉴는 _NET_WM_WINDOW_TYPE 속성이 _NET_WM_WINDOW_TYPE_MENU으로 설정된 창입니다.

데스크톱 표준에 따르면 이러한 창은 주 응용 프로그램 창에서 "떨어져 나와"바탕 화면에 고정 된 메뉴라고합니다. 이것을 탐지하기 위해 특별한 라이브러리가 필요하지 않습니다. 단지 일반적인 속성 조작 함수를 사용하십시오.

나는 스크린 세이버가 왜 그렇게 필요한지 이해하지 못합니다.

+0

고맙습니다. nm! – Noitidart