/*
* Created on 2003/05/24
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package org.jpn.xucker.commons.swt.ui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
/**
* @author ak
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class ImageCanvas extends Canvas implements PaintListener{
private Image image;
public ImageCanvas(Composite composite){
super(composite,SWT.NO_BACKGROUND);
this.addPaintListener(this);
}
public Image getImage() {
return image;
}
public void setImage(Image image) {
if(this.image!=null){
this.image.dispose();
}
this.image = image;
}
public void paintControl(PaintEvent e) {
GC gc=new GC(this);
Image bgImage = new Image(this.getShell().getDisplay(), this.getClientArea());
GC imageGc = new GC(bgImage);
imageGc.setBackground(new Color(this.getDisplay(),0,0,0));
imageGc.setForeground(new Color(this.getDisplay(),255,0,0));
imageGc.fillRectangle(0,0,getBounds().width,getBounds().height);
//System.out.println(this.getBounds());
if(image!=null){
if(image.getBounds().height>this.getClientArea().height){
imageGc.drawImage(image,0,this.getClientArea().height-image.getBounds().height);
}else{
imageGc.drawImage(image,0,0);
}
}
gc.drawImage(bgImage,0,0);
bgImage.dispose();
imageGc.dispose();
gc.dispose();
}
}
|