//Auto-generated by kalyptus. DO NOT EDIT.
namespace Plasma {
    using Plasma;
    using System;
    using Kimono;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IContextSignals"></see> for signals emitted by Context
    /// </remarks>
    [SmokeClass("Plasma::Context")]
    public class Context : QObject, IDisposable {
        protected Context(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(Context), this);
        }
        public Context(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("Context#", "Context(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public Context() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("Context", "Context()", typeof(void));
        }
        public void CreateActivity(string name) {
            interceptor.Invoke("createActivity$", "createActivity(const QString&)", typeof(void), typeof(string), name);
        }
        public List<string> ListActivities() {
            return (List<string>) interceptor.Invoke("listActivities", "listActivities() const", typeof(List<string>));
        }
        public void SetCurrentActivity(string name) {
            interceptor.Invoke("setCurrentActivity$", "setCurrentActivity(const QString&)", typeof(void), typeof(string), name);
        }
        public string CurrentActivity() {
            return (string) interceptor.Invoke("currentActivity", "currentActivity() const", typeof(string));
        }
        ~Context() {
            interceptor.Invoke("~Context", "~Context()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~Context", "~Context()", typeof(void));
        }
        protected new IContextSignals Emit {
            get { return (IContextSignals) Q_EMIT; }
        }
    }

    public interface IContextSignals : IQObjectSignals {
        [Q_SIGNAL("void changed(Plasma::Context*)")]
        void Changed(Plasma.Context context);
        [Q_SIGNAL("void activityChanged(Plasma::Context*)")]
        void ActivityChanged(Plasma.Context context);
        [Q_SIGNAL("void locationChanged(Plasma::Context*)")]
        void LocationChanged(Plasma.Context context);
    }
}
