//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    [SmokeClass("QScriptContext")]
    public class QScriptContext : Object {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QScriptContext(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QScriptContext), this);
        }
        public enum ExecutionState {
            NormalState = 0,
            ExceptionState = 1,
        }
        public enum Error {
            UnknownError = 0,
            ReferenceError = 1,
            SyntaxError = 2,
            TypeError = 3,
            RangeError = 4,
            URIError = 5,
        }
        public QScriptContext ParentContext() {
            return (QScriptContext) interceptor.Invoke("parentContext", "parentContext() const", typeof(QScriptContext));
        }
        public QScriptEngine Engine() {
            return (QScriptEngine) interceptor.Invoke("engine", "engine() const", typeof(QScriptEngine));
        }
        public QScriptContext.ExecutionState State() {
            return (QScriptContext.ExecutionState) interceptor.Invoke("state", "state() const", typeof(QScriptContext.ExecutionState));
        }
        public QScriptValue Callee() {
            return (QScriptValue) interceptor.Invoke("callee", "callee() const", typeof(QScriptValue));
        }
        public int ArgumentCount() {
            return (int) interceptor.Invoke("argumentCount", "argumentCount() const", typeof(int));
        }
        public QScriptValue Argument(int index) {
            return (QScriptValue) interceptor.Invoke("argument$", "argument(int) const", typeof(QScriptValue), typeof(int), index);
        }
        public QScriptValue ArgumentsObject() {
            return (QScriptValue) interceptor.Invoke("argumentsObject", "argumentsObject() const", typeof(QScriptValue));
        }
        public QScriptValue ReturnValue() {
            return (QScriptValue) interceptor.Invoke("returnValue", "returnValue() const", typeof(QScriptValue));
        }
        public void SetReturnValue(QScriptValue result) {
            interceptor.Invoke("setReturnValue#", "setReturnValue(const QScriptValue&)", typeof(void), typeof(QScriptValue), result);
        }
        public QScriptValue ActivationObject() {
            return (QScriptValue) interceptor.Invoke("activationObject", "activationObject() const", typeof(QScriptValue));
        }
        public void SetActivationObject(QScriptValue activation) {
            interceptor.Invoke("setActivationObject#", "setActivationObject(const QScriptValue&)", typeof(void), typeof(QScriptValue), activation);
        }
        public QScriptValue ThisObject() {
            return (QScriptValue) interceptor.Invoke("thisObject", "thisObject() const", typeof(QScriptValue));
        }
        public void SetThisObject(QScriptValue thisObject) {
            interceptor.Invoke("setThisObject#", "setThisObject(const QScriptValue&)", typeof(void), typeof(QScriptValue), thisObject);
        }
        public bool IsCalledAsConstructor() {
            return (bool) interceptor.Invoke("isCalledAsConstructor", "isCalledAsConstructor() const", typeof(bool));
        }
        public QScriptValue ThrowValue(QScriptValue value) {
            return (QScriptValue) interceptor.Invoke("throwValue#", "throwValue(const QScriptValue&)", typeof(QScriptValue), typeof(QScriptValue), value);
        }
        public QScriptValue ThrowError(QScriptContext.Error error, string text) {
            return (QScriptValue) interceptor.Invoke("throwError$$", "throwError(QScriptContext::Error, const QString&)", typeof(QScriptValue), typeof(QScriptContext.Error), error, typeof(string), text);
        }
        public QScriptValue ThrowError(string text) {
            return (QScriptValue) interceptor.Invoke("throwError$", "throwError(const QString&)", typeof(QScriptValue), typeof(string), text);
        }
        public List<string> Backtrace() {
            return (List<string>) interceptor.Invoke("backtrace", "backtrace() const", typeof(List<string>));
        }
        public new string ToString() {
            return (string) interceptor.Invoke("toString", "toString() const", typeof(string));
        }
    }
}
