主题

org.eclipse.ui.themes

3.0

此扩展点用来定制用户界面的外观。它允许定义颜色和字体实体以及主题实体。主题允许应用程序有选择性地覆盖缺省颜色和字体规范以用于特殊用途。

<!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>

字体、颜色和数据覆盖的集合。这种集合可用来改变工作台的外观。多个 theme 元素可存在同一标识。这允许组件作者添加到现有的主题。



<!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>

This color is used for the forground color of the XYZ plugin editor.

</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>

This color is used for the background color of the XYZ plugin editor.

</description>

</colorDefinition>

<fontDefinition id=

"com.xyz.TextFont"

categoryId=

"com.xyz.ThemeCategory"

label=

"XYZ Editor Font"

defaultsTo=

"org.eclipse.jface.textfont"

>

<description>

This font is used by the XYY plugin editor.

</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 的实例,该实例可用于获取指定主题(根据标识,包括标识为 IThemeManager.DEFAULT_THEME 的缺省主题)或当前主题。从 org.eclipse.ui.themes.ITheme 中,您可以获取 org.eclipse.jface.resources.ColorRegistryorg.eclipse.jface.resources.FontRegistry 以及与主题相关联的任意数据。

工作台提供了文本、对话框、条幅、标题和部分标题字体的字体定义。它还提供了超链接、活动超链接、错误、活动部分(后台梯度部分和前台)和不活动部分(后台梯度部分和前台)的颜色定义。工作台还提供了标题梯度百分比(活动和不活动)及梯度方向(活动和不活动)的数据常量。工作台未提供任何指定主题。