在Eclipse E4中突出显示活动的MPart选项卡

时间:2017-01-11 07:11:02

标签: java eclipse-rcp e4

我在尝试激活和选择MPart时尝试更改MPart标签背景。当选择另一个MPartStack中的另一个MPart时,需要将第一个MPart的样式更改回其默认值。

选择MPart时应如下所示: enter image description here

但是当MPart没有聚焦时,应该是:enter image description here

我尝试了不同的CSS样式,但没有它们有效。现在所有的MParts都会突出显示。我的CSS如下所示:

.MPartStack.active {
    swt-selected-tabs-background: #E5EDFC #99BAF3 100%;
    swt-unselected-tabs-background: #F0F0F0;
}

.MPartStack
{
    swt-selected-tabs-background: #E5EDFC #99BAF3 100%;
    swt-selected-tabs-background: #F0F0F0;
}

.MPartStack.active.noFocus {
    swt-selected-tabs-background: #F0F0F0;
    swt-unselected-tabs-background: #F0F0F0;
}

.MPartStack > CTabItem {
    color : black;
    swt-selected-tabs-background: #E5EDFC #99BAF3 100%;
    swt-selected-tabs-background: #F0F0F0;
}

CTabItem:selected { font-weight: bold; }

我尝试了其他StackOverFlow帖子中的所有内容,但它不起作用。 有人可以帮我弄这个吗?我的客户要求此功能使用户界面更友好。

1 个答案:

答案 0 :(得分:1)

必须设置swt-tab-renderer以使swt-*属性有效:

.MPartStack {
    swt-tab-renderer: url('bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.CTabRendering');
}

这些是标准Eclipse呈现使用的基本设置:

.MPartStack {
    swt-tab-renderer: url('bundleclass://org.eclipse.e4.ui.workbench.renderers.swt/org.eclipse.e4.ui.workbench.renderers.swt.CTabRendering');
    swt-selected-tab-fill: INACTIVE_TAB_BG_START INACTIVE_TAB_BG_END 100% 100%;
    swt-unselected-tabs-color: INACTIVE_UNSELECTED_TABS_COLOR_START INACTIVE_UNSELECTED_TABS_COLOR_END 100% 100%;
    swt-outer-keyline-color: INACTIVE_TAB_OUTER_KEYLINE_COLOR;
    swt-inner-keyline-color: INACTIVE_TAB_INNER_KEYLINE_COLOR;
    swt-tab-outline: INACTIVE_TAB_OUTLINE_COLOR;
    padding: 0px 2px 2px;
    swt-shadow-visible: false;
    swt-mru-visible: false;
    color: INACTIVE_TAB_TEXT_COLOR;
}

.MPartStack.active {
    swt-selected-tab-fill: ACTIVE_TAB_BG_START ACTIVE_TAB_BG_END 100% 100%;
    swt-unselected-tabs-color: ACTIVE_UNSELECTED_TABS_COLOR_START ACTIVE_UNSELECTED_TABS_COLOR_END 100% 100%;
    swt-outer-keyline-color: ACTIVE_TAB_OUTER_KEYLINE_COLOR;
    swt-inner-keyline-color: ACTIVE_TAB_INNER_KEYLINE_COLOR;
    swt-tab-outline: ACTIVE_TAB_OUTLINE_COLOR;
    swt-shadow-visible: false;
}

INACTIVE_TAB_BG_START等值替换为您想要的颜色。