主題

org.eclipse.ui.themes

3.0 版

這個延伸點用來自訂 UI 的外觀。它接受顏色與字型實體及主題實體的定義。 主題可讓應用程式選擇性地置換特定用途的預設顏色與字型規格。

<!ELEMENT extension (theme* , colorDefinition* , fontDefinition* , themeElementCategory* , data* , categoryPresentationBinding*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT theme (colorOverride* , fontOverride* , description? , data*)>

<!ATTLIST theme

id   CDATA #REQUIRED

name CDATA #IMPLIED>

置換字型、顏色和資料的集合。這類集合可用來改變工作台的外觀。許多主題元素可能具有相同的 ID。這容許元件作者提出現有的主題。



<!ELEMENT themeElementCategory (description)>

<!ATTLIST themeElementCategory

id       CDATA #REQUIRED

parentId CDATA #IMPLIED

class    CDATA #IMPLIED

label    CDATA #IMPLIED>

主題元素定義的邏輯分組。這個種類可包括顏色與字型。



<!ELEMENT colorDefinition (colorFactory? , colorValue* , description?)>

<!ATTLIST colorDefinition

id           CDATA #IMPLIED

label        CDATA #REQUIRED

defaultsTo   CDATA #IMPLIED

value        CDATA #IMPLIED

categoryId   CDATA #IMPLIED

colorFactory CDATA #IMPLIED

isEditable   (true | false) >

符號顏色定義。



<!ELEMENT fontDefinition (fontValue* , description?)>

<!ATTLIST fontDefinition

id         CDATA #REQUIRED

label      CDATA #REQUIRED

value      CDATA #IMPLIED

categoryId CDATA #IMPLIED

defaultsTo CDATA #IMPLIED

isEditable (true | false) >

符號字型定義。



<!ELEMENT colorOverride (colorFactory? , colorValue*)>

<!ATTLIST colorOverride

id           CDATA #REQUIRED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

容許置換 colorDefinition 元素中定義的顏色。 當主題在使用中,就會套用這些顏色。



<!ELEMENT fontOverride (fontValue*)>

<!ATTLIST fontOverride

id    CDATA #REQUIRED

value CDATA #REQUIRED>

容許置換 fontsDefinition 元素中定義的字型。當主題在使用中,就會套用這些字型。



<!ELEMENT description (#PCDATA)>

元素用法的簡要說明。



<!ELEMENT colorFactory (parameter*)>

<!ATTLIST colorFactory

class  CDATA #REQUIRED

plugin CDATA #IMPLIED>

colorFactory 屬性的元素版本。當 colorFactory 實作 org.eclipse.core.runtime.IExecutableExtension,且您想在它的初值設定中使用參數化資料時,便使用這個項目。



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

在 colorFactory 元素內使用的參數元素。這將作為初值設定資料傳給 colorFactory 類別。



<!ELEMENT data EMPTY>

<!ATTLIST data

name  CDATA #REQUIRED

value CDATA #REQUIRED>

可讓任意資料關聯於某主題或預設主題的元素。 這個資料可能是漸層指示或百分比、標籤、作者資訊等等。

這個元素有類似於定義和置換的行為。 如果預設主題和識別的主題中都有索引鍵,當存取識別的主題時,會使用識別的主題值。 如果識別的主題沒有提供值,就會使用預設值。



<!ELEMENT colorValue (colorFactory?)>

<!ATTLIST colorValue

os           CDATA #IMPLIED

ws           CDATA #IMPLIED

value        CDATA #IMPLIED

colorFactory CDATA #IMPLIED>

這個元素允許在個別平台的基礎上指定顏色值。



<!ELEMENT fontValue EMPTY>

<!ATTLIST fontValue

os    CDATA #IMPLIED

ws    CDATA #IMPLIED

value CDATA #REQUIRED>

這個元素允許在個別平台的基礎上指定字型值。



<!ELEMENT categoryPresentationBinding EMPTY>

<!ATTLIST categoryPresentationBinding

categoryId     CDATA #REQUIRED

presentationId CDATA #REQUIRED>

這個元素可讓您依照 org.eclipse.ui.presentationFactory 延伸點所說明來連結至特定的呈現方式。 如果種類有任何呈現連結,且已連結於作用中的呈現,就只有使用者能夠配置它(及它的子項)。 這可用來從使用者的考量中移除未用的項目。



以下是若干顏色與字型定義的範例以及置換它們的主題。

   

<extension point=

"org.eclipse.ui.themes"

>

<themeElementCategory id=

"com.xyz.ThemeCategory"

class=

"com.xyz.XYZPreview"

label=

"XYZ Elements"

/>

<colorDefinition id=

"com.xyz.Forground"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Foreground Color"

value=

"COLOR_BLACK"

>

<!-- white should be used on GTK -->

<colorValue value=

"COLOR_WHITE"

os=

"linux"

ws=

"gtk"

/>

<description>

這個顏色是用在 XYZ 外掛程式編輯器的前景顏色。

</description>

</colorDefinition>

<colorDefinition id=

"com.xyz.Background"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Background Color"

>

<colorFactory class=

"org.eclipse.ui.themes.RGBBlendColorFactory"

plugin=

"org.eclipse.ui"

>

<parameter name=

"color1"

value=

"COLOR_WHITE"

/>

<parameter name=

"color2"

value=

"COLOR_BLUE"

/>

</colorFactory>

<!-- black should be used on GTK -->

<colorValue value=

"COLOR_BLACK"

os=

"linux"

ws=

"gtk"

/>

<description>

這個顏色是用在 XYZ 外掛程式編輯器的背景顏色。

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Editor Font"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

這個字型是用在 XYY 外掛程式編輯器的字型。

</description>

</fontDefinition>

<data name=

"com.xyz.EditorMarginWidth"

value=

"5"

/>

<theme id=

"com.xyz.HarshTheme"

label=

"Harsh Colors for XYZ"

>

<colorOverride id=

"com.xyz.Forground"

value=

"COLOR_CYAN"

/>

<colorOverride id=

"com.xyz.Background"

value=

"COLOR_MAGENTA"

/>

<data name=

"com.xyz.EditorMarginWidth"

value=

"1"

/>

</theme>

</extension>

org.eclipse.ui.IWorkbench.getThemeManager() 提供 org.eclipse.ui.themes.IThemeManager 的實例,可用來取得具名主題(依據 ID,其中包括 ID 為 IThemeManager.DEFAULT_THEME 的預設主題)或現行主題。您可以從 org.eclipse.ui.themes.ITheme 中取得 org.eclipse.jface.resources.ColorRegistryorg.eclipse.jface.resources.FontRegistry 和主題相關的任意資料。

工作台提供了文字、對話框、橫幅、標頭以及組件標題字型的字型定義。 它也提供超鏈結、作用中的超鏈結、錯誤、作用中的部分(背景漸層部分和前景)和非作用中的部分(背景漸層部分和前景)的顏色定義。 另外,工作台也提供標題漸層百分比(作用中和非作用中)及漸層指示(作用中和非作用中)的資料常數。 工作台不會提供任何具名的主題。