package org.eclipse.swt.custom;

/*
 * Copyright (c) 2000, 2002 IBM Corp.  All rights reserved.
 * This file is made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 */

import org.eclipse.swt.events.TypedEvent;
import org.eclipse.swt.widgets.*;

public class CTabFolderEvent extends TypedEvent {
 	public Widget item;
 	public boolean doit;
 	
CTabFolderEvent(Widget w) {
	super(w);
}
}
