2014-09-25 60 views
0

我想將關閉按鈕的工具提示從「關閉」更改爲「刪除」,並用另一圖像替換「x」。我在SWT的代碼中找到了相應的位置。更改CTabFolder的關閉按鈕的外觀

CTabFolder

String _getToolTip(int x, int y) { 
    // ... 
    if ((showClose || item.getShowClose()) && item.closeRect.contains(x, y)) { 
     return SWT.getMessage("SWT_Close"); //$NON-NLS-1$ 
} 

CTabFolderRenderer

void drawClose(GC gc, Rectangle closeRect, int closeImageState) { 
    // ... 
} 

爲了我的悲哀,我注意到無論這兩種方法可以重寫。那麼是否真的沒有機會滿足我的要求?而這雖然CTabFolderRenderer甚至打算被分類。用戶Niranjan問了similar question,他顯然設法解決了我的一個問題。但是如何?

+0

你可以做類似[this](http://stackoverflow.com/questions/11844119/how-to-add-close-button-with-swt-tabitem)。在那種情況下,你會在左邊有圖標。 – Baz 2014-09-25 14:57:46

回答

0

您可以通過調用CTabFolder.setRenderer來設置要使用的新渲染器,而不是CTabFolderRenderer

您的新渲染器可以擴展CTabFolderRenderer,但由於您無法覆蓋drawClose,您將不得不覆蓋draw並複製大量代碼。

Eclipse本身使用標籤渲染器org.eclipse.e4.ui.workbench.renderers.swt.CTabRendering來更改一些繪圖(但不是關閉按鈕)。

所以這是更多的工作,它可能是一個更好的基礎渲染類。