/*******************************************************************************
* Copyright (c) 2009-2013 CWI
* 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
*******************************************************************************/
package org.rascalmpl.eclipse.library.vis.swt;
import org.rascalmpl.interpreter.IEvaluatorContext;
import org.rascalmpl.interpreter.result.Result;
import io.usethesource.vallang.IConstructor;
import io.usethesource.vallang.IValue;
import io.usethesource.vallang.type.Type;
public interface ICallbackEnv {
public IEvaluatorContext getRascalContext();
public void checkIfIsCallBack(IValue fun);
public void fakeRascalCallBack();
public int getComputeClock();
public void signalRecompute();
public long getAndResetRascalTime(); // profiling
public Result<IValue> executeRascalCallBack(IValue callback, Type[] argTypes, IValue[] argVals) ;
public Result<IValue> executeRascalCallBackWithoutArguments(IValue callback) ;
public Result<IValue> executeRascalCallBackSingleArgument(IValue callback, Type type, IValue arg) ;
public IConstructor executeRascalFigureCallBack(IValue callback, Type[] argTypes, IValue[] argVals);
public void registerAnimation(Animation a);
public void unregisterAnimation(Animation a);
}