/*
 * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
 *
 * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
 * the European Commission - subsequent versions of the EUPL (the "Licence");
 * You may not use this work except in compliance with the Licence.
 * You may obtain a copy of the Licence at:
 * http://joinup.ec.europa.eu/software/page/eupl
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the Licence for the specific language governing permissions and
 * limitations under the Licence.
 */
package at.asit.pdfover.gui.controls;

// Imports
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Region;
import org.eclipse.swt.widgets.Composite;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 
 */
public class MainBarStartButton extends MainBarButton {
	/**
	 * @param parent
	 * @param style
	 */
	public MainBarStartButton(Composite parent, int style) {
		super(parent, style);
	}

	/**
	 * SLF4J Logger instance
	 **/
	@SuppressWarnings("unused")
	private static final Logger log = LoggerFactory
			.getLogger(MainBarStartButton.class);

	@Override
	protected void paintBackground(PaintEvent e) {
		super.paintBackground(e);
		/*
		Point size = this.getSize();
		int height = size.y - 2;

		int split = SplitFactor;
		int width = size.x - split;

		int factor = GradientFactor;

		Region left_reg = new Region();
		left_reg.add(new int[] { 0, 0, factor, factor, factor, height-factor, 0, height, 0, 0 });
		
		Region right1_reg = new Region();
		right1_reg.add(new int[] { width, 0, 
				width - factor, factor, 
				width - factor, height-factor, width, height, width, 0 });
		
		Region top_reg = new Region();
		top_reg.add(new int[] { 
				0, 0, 
				factor, factor, 
				width - factor, factor, 
				width, 0, 
				0, 0 });
		
		Region bottom_reg = new Region();
		bottom_reg.add(new int[] { 
				0, height, 
				factor, height-factor, 
				width - factor, height-factor, 
				width, height, 0, height });
		
		e.gc.setClipping(top_reg);
		
		//TOP 
		 e.gc.fillGradientRectangle(0, 0, width, factor, true);
		 
		 e.gc.setClipping(bottom_reg);
		 
		 //BOTTOM 
		 e.gc.fillGradientRectangle(0, height, width, -1 * (factor),
		  true);
		
		 e.gc.setClipping(left_reg);
		 
		// LEFT
		e.gc.fillGradientRectangle(0, 0, factor, height, false);

		
		e.gc.setClipping(right1_reg);
		// RIGTH
		e.gc.fillGradientRectangle(width, 0, -1 * factor, height,
				false);
		
		e.gc.setClipping((Region)null);*/
	}
	
	/* (non-Javadoc)
	 * @see at.asit.pdfover.gui.controls.MainBarButton#paintButton(org.eclipse.swt.events.PaintEvent)
	 */
	@Override
	protected void paintButton(PaintEvent e) {

		Point size = this.getSize();

		int height = size.y - 3;

		int split = SplitFactor;
		int width = size.x - split;
		
		e.gc.drawLine(0, 0, width, 0);
		e.gc.drawLine(width, 0, width + split, (height) / 2);
		e.gc.drawLine(width + split, (height) / 2, width, height);
		e.gc.drawLine(width, height, 0, height);
		e.gc.drawLine(0, height, 0, 0);

	}

	/* (non-Javadoc)
	 * @see at.asit.pdfover.gui.controls.MainBarButton#getRegion()
	 */
	@Override
	protected Region getCustomRegion() {
		Point size = this.getSize();

		int height = size.y - 2;

		int split = SplitFactor;

		int width = size.x - split;

		Region reg = new Region();
		reg.add(new int[] { 0, 0, width, 0, width + split,
				(height) / 2, width, height, 0, height, 0, 0 });
		return reg;
	}

	
	/**
	 * change the text position 
	 * @param positionX the position
	 * @return the new position
	 */
	@Override
	protected int changeTextPosition(int positionX) {
		return positionX - (SplitFactor / 2);
	}
}