blob: 90ca12cc57e52ea1da6369356ef299d4956fe932 [file] [log] [blame]
/*
* Copyright (c) 2015 The Eclipse Foundation 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:
* Yatta Solutions - [466264] initial API and implementation
*/
package org.eclipse.oomph.internal.ui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
/**
* @author Andreas Scharf
*/
public class ImageCheckbox extends ImageHoverButton
{
private final Image checkedImage;
private boolean checked;
public ImageCheckbox(Composite parent, Image defaultImage, Image hoverImage)
{
this(parent, defaultImage, hoverImage, hoverImage);
}
public ImageCheckbox(Composite parent, Image defaultImage, Image hoverImage, Image checkedImage)
{
super(parent, SWT.CHECK, defaultImage, hoverImage);
this.checkedImage = checkedImage;
}
public boolean isChecked()
{
return checked;
}
public void setChecked(boolean checked)
{
this.checked = checked;
setImage(computeImage());
redraw();
}
@Override
protected Image computeImage()
{
if (!isEnabled())
{
return super.computeImage();
}
if (isHover() && !isChecked())
{
return getHoverImage();
}
return isChecked() ? getCheckedImage() : getDefaultImage();
}
protected Image getCheckedImage()
{
return checkedImage;
}
}