Я пытаюсь изменить фон вкладки MPart, когда MPart активирован и выбран. Когда выбран другой MPart из другого MPartStack, стиль первого MPart необходимо изменить обратно на стиль по умолчанию.

Когда выбран MPart, он должен выглядеть так: введите описание изображения здесь

Но когда MPart не в фокусе, это должно выглядеть так: введите описание изображения здесь

Я пробовал разные стили 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 сообщение, но это не работает. Может кто-то помочь мне с этим? Мой клиент просит эту функцию сделать пользовательский интерфейс более удобным для пользователя.

0
JimmyD 11 Янв 2017 в 10:11

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 желаемыми цветами.

1
greg-449 11 Янв 2017 в 11:14
Добавлен пример из Eclipse
 – 
greg-449
11 Янв 2017 в 11:41
Можно ли также изменить макет вкладки, чтобы он выглядел как классическая вкладка Eclipse?
 – 
JimmyD
17 Мар 2017 в 15:36
Я не понимаю, что вы имеете в виду. Возможно swt-simple: true;
 – 
greg-449
17 Мар 2017 в 16:36