2009-12-25 64 views
1

我使用SWT + JFace並希望在托盤圖標(如工具提示)附近顯示我的應用程序窗口。SWT TrayItem位置

有沒有辦法獲得TrayItem的位置?

回答

-1

我沒有試過,但由於TrayItem延伸Item,這是Widget一個實例,爲什麼不試試這個:

Tray tray = display.getSystemTray(); 
TrayItem trayItem = new TrayItem(tray, SWT.NONE); 
Rectangle bounds = trayItem.getDisplay().getBounds(); 
+2

你好,保羅。 謝謝你的回答!但我嘗試了它,似乎對於托盤項目它不起作用。我找到了下一個解決方案(但它取決於平臺): int itemHandle = trayItem.handle; \t \t \t GdkRectangle areaRectangle =新GdkRectangle(); OSGtk_status_icon_get_geometry(itemHandle,0,areaRectangle,0); windowX = areaRectangle.x; windowY = areaRectangle.y; 此致敬禮! Alex – Alex 2009-12-31 07:37:38

0

有沒有平臺無關的方式做到這一點AFAIK。你真的需要它,你可能需要根據你的GTK例子編寫底層的SWT平臺API。我所做的構建/運行的方法之一就是使用反射來調用基於SWT.getPlatform()返回的方法。

如果窗口鼠標觸發(例如,通過懸停),你可以考慮使用鼠標的位置作爲懸停的基本位置。