/*******************************************************************************
 * Copyright (c) 2000, 2006 IBM Corporation 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.debug.internal.ui;

 
import org.eclipse.debug.core.model.IStackFrame;
import org.eclipse.swt.graphics.Image;

/**
 * Default instruction pointer annotation.
 */
public class InstructionPointerAnnotation extends DynamicInstructionPointerAnnotation {
	
	/**
	 * The image for this annotation.
	 */
	private Image fImage;
	
	/**
	 * Constructs an instruction pointer image.
	 * 
	 * @param frame stack frame the instruction pointer is associated with
	 * @param annotationType the type of annotation to display (annotation identifier)
	 * @param text the message to display with the annotation as hover help
	 * @param image the image used to display the annotation
	 */
	public InstructionPointerAnnotation(IStackFrame frame, String annotationType, String text, Image image) {
		super(frame, annotationType, text);
		fImage = image;
	}
		
	/**
	 * Returns this annotation's image.
	 * 
	 * @return image
	 */
	protected Image getImage() {
		return fImage;
	}

}
