2013-05-21 2 views
1

나는 draw2d 트리와 성운의 GridTreeViewer (기본적으로 JFace TreeViewer)을 모두 가지고있는 편집기를 가지고있다. 스크롤바를 제외하고는 내가 필요한 것입니다. draw2d에서 스크롤바는 org.eclipse.draw2d.ScrollPane이고 GridTreeViewer은 JFace에서 스크롤 막대를 가져옵니다. 이유는 모르겠지만 스크롤 바가 다르게 보입니다. 오인하지 않으면 OS의 네이티브 컨트롤이라고 부르기 때문에 같은 모양을 기대합니다. 스크롤 막대가 다르게 보이고 왜 JFace의 스크롤 막대가 draw2d와 같은 모양으로 "다운 그레이드"되는 이유가 있습니까? 아마도 ScrollPane의 스크롤 막대를 설정하는 데 실수가 있습니까? 여기 스타일 TreeViewer의 스크롤 바

이 스크린 샷입니다,이 우분투 13.04에 :

enter image description here

답변

2

은 측면에 실수가 없다. 가장 왼쪽 트리는 사용자 지정 그린 스크롤바 (Draw2d 트리라고 가정)와 가장 오른쪽 트리는 네이티브 스크롤바 ("JFace"라고 부르는 것)를 보여줍니다. Eclipse 외부의 대부분의 응용 프로그램은 "JFace"와 같은 스크롤 막대를 표시합니다. 즉, 우분투 오버레이 스크롤바가 활성화되어있는 경우입니다.

쉽게 해결할 수있는 방법은 없습니다. IMHO, 당신은 Draw2d 소스에 들어가서 커스텀 드로잉을 비활성화하고 원래의 SWT로 대체하려고 시도 할 수 있습니다 (SWT에서). 또는 성운 컨트롤 대신 사용자 정의 트리를 사용할 수 있습니다 ...

"JFace"툴바는 Mac OS X 또는 Windows에서 크게 달라 보이며 크기가 다를 수 있습니다. 사용자가 기대할 수 있습니다.

+0

감사합니다. @Eugene 그래, 그게 내가 기대하는 것입니다. 왜 draw2d 개발자는 자신의 스타일을 굴리기로 결정 했습니까? SWT의 모든 개념이 컨트롤을 위해 호스트 OS에 의존하는 것이 아닌가? –

+0

Draw2d는 "가벼운"것을 의미합니다. 그것은 당신이 그림과 같이 컨트롤을 사용하는 것처럼 다이어그램을 만드는 것을 의미합니다. 그리고 Draw2d는 Z 순서, 클리핑 등을 관리합니다. 그들은 모든 그림이 OS 제어에 의해 뒷받침되기를 원하지 않았습니다. 더 큰 다이어그램 (AFAIK, Windows는 최대 수나 컨트롤에 대한 제한도 있습니다)에서 많은 리소스를 소비하므로 뷰어에 모든 것을 그릴 수 있습니다. – Eugene

+0

알 겠어.하지만 가능하다면 OS의 컨트롤 스타일링을 위해 스타일을 덮어 쓰는 방법이 있었으면 좋겠다. –