/*******************************************************************************
* Copyright (c) 2008, 2015 Innoopract Informationssysteme GmbH and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Innoopract Informationssysteme GmbH - initial API and implementation
* EclipseSource - ongoing development
******************************************************************************/
package org.eclipse.swt.internal.custom.ctabfolderkit;
import org.eclipse.rap.rwt.internal.theme.CssBoxDimensions;
import org.eclipse.rap.rwt.internal.theme.CssColor;
import org.eclipse.rap.rwt.internal.theme.CssDimension;
import org.eclipse.rap.rwt.internal.theme.CssFont;
import org.eclipse.rap.rwt.internal.theme.CssValue;
import org.eclipse.rap.rwt.internal.theme.SimpleSelector;
import org.eclipse.rap.rwt.internal.theme.ThemeUtil;
import org.eclipse.rap.rwt.theme.BoxDimensions;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.internal.widgets.controlkit.ControlThemeAdapterImpl;
import org.eclipse.swt.widgets.Control;
public class CTabFolderThemeAdapter extends ControlThemeAdapterImpl {
private static final BoxDimensions ZERO = new BoxDimensions( 0, 0, 0, 0 );
/*
* [if] CTabFolder border is not themeable. It overrides getBorderWidth to return 0.
* Make getBorder to return zero rectangle as well.
* See bug 445620: ViewPart toolbar overlap border
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=445620
*/
@Override
public BoxDimensions getBorder( Control control ) {
return ZERO;
}
public Color getBackground( CTabFolder folder ) {
return getCssColor( "CTabItem", "background-color", folder );
}
public Color getForeground( CTabFolder folder ) {
return getCssColor( "CTabItem", "color", folder );
}
public Color getSelectedBackground() {
CssValue cssValue = ThemeUtil.getCssValue( "CTabItem",
"background-color",
SimpleSelector.SELECTED );
return CssColor.createColor( ( CssColor )cssValue );
}
public Color getSelectedForeground() {
CssValue cssValue = ThemeUtil.getCssValue( "CTabItem", "color", SimpleSelector.SELECTED );
return CssColor.createColor( ( CssColor )cssValue );
}
public BoxDimensions getItemPadding( boolean selected ) {
SimpleSelector selector = selected ? SimpleSelector.SELECTED : SimpleSelector.DEFAULT;
CssValue cssValue = ThemeUtil.getCssValue( "CTabItem", "padding", selector );
return ( ( CssBoxDimensions )cssValue ).dimensions;
}
public int getItemSpacing( boolean selected ) {
SimpleSelector selector = selected ? SimpleSelector.SELECTED : SimpleSelector.DEFAULT;
CssValue cssValue = ThemeUtil.getCssValue( "CTabItem", "spacing", selector );
return ( ( CssDimension )cssValue ).value;
}
public Font getItemFont( boolean selected ) {
SimpleSelector selector = selected ? SimpleSelector.SELECTED : SimpleSelector.DEFAULT;
CssValue cssValue = ThemeUtil.getCssValue( "CTabItem", "font", selector );
return CssFont.createFont( ( CssFont )cssValue );
}
}