//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IQCoreApplicationSignals"></see> for signals emitted by QCoreApplication
    /// </remarks>
    [SmokeClass("QCoreApplication")]
    public partial class QCoreApplication : QObject, IDisposable {
        protected QCoreApplication(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QCoreApplication), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QCoreApplication() {
            staticInterceptor = new SmokeInvocation(typeof(QCoreApplication), null);
        }
        public enum Encoding {
            CodecForTr = 0,
            UnicodeUTF8 = 1,
            DefaultCodec = CodecForTr,
        }
        [Q_PROPERTY("QString", "applicationName")]
        public string ApplicationName {
            get { return (string) interceptor.Invoke("applicationName", "applicationName()", typeof(string)); }
            set { interceptor.Invoke("setApplicationName$", "setApplicationName(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "applicationVersion")]
        public string ApplicationVersion {
            get { return (string) interceptor.Invoke("applicationVersion", "applicationVersion()", typeof(string)); }
            set { interceptor.Invoke("setApplicationVersion$", "setApplicationVersion(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "organizationName")]
        public string OrganizationName {
            get { return (string) interceptor.Invoke("organizationName", "organizationName()", typeof(string)); }
            set { interceptor.Invoke("setOrganizationName$", "setOrganizationName(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "organizationDomain")]
        public string OrganizationDomain {
            get { return (string) interceptor.Invoke("organizationDomain", "organizationDomain()", typeof(string)); }
            set { interceptor.Invoke("setOrganizationDomain$", "setOrganizationDomain(QString)", typeof(void), typeof(string), value); }
        }
        // EventFilter setEventFilter(EventFilter arg1); >>>> NOT CONVERTED
        // bool filterEvent(void* arg1,long* arg2); >>>> NOT CONVERTED
        // bool compressEvent(QEvent* arg1,QObject* arg2,QPostEventList* arg3); >>>> NOT CONVERTED
        [SmokeMethod("notify(QObject*, QEvent*)")]
        public virtual bool Notify(QObject arg1, QEvent arg2) {
            return (bool) interceptor.Invoke("notify##", "notify(QObject*, QEvent*)", typeof(bool), typeof(QObject), arg1, typeof(QEvent), arg2);
        }
        [SmokeMethod("event(QEvent*)")]
        protected new virtual bool Event(QEvent arg1) {
            return (bool) interceptor.Invoke("event#", "event(QEvent*)", typeof(bool), typeof(QEvent), arg1);
        }
        ~QCoreApplication() {
            interceptor.Invoke("~QCoreApplication", "~QCoreApplication()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QCoreApplication", "~QCoreApplication()", typeof(void));
        }
        public static new string Tr(string s, string c) {
            return (string) staticInterceptor.Invoke("tr$$", "tr(const char*, const char*)", typeof(string), typeof(string), s, typeof(string), c);
        }
        public static new string Tr(string s) {
            return (string) staticInterceptor.Invoke("tr$", "tr(const char*)", typeof(string), typeof(string), s);
        }
        public static List<string> Arguments() {
            return (List<string>) staticInterceptor.Invoke("arguments", "arguments()", typeof(List<string>));
        }
        public static void SetAttribute(Qt.ApplicationAttribute attribute, bool on) {
            staticInterceptor.Invoke("setAttribute$$", "setAttribute(Qt::ApplicationAttribute, bool)", typeof(void), typeof(Qt.ApplicationAttribute), attribute, typeof(bool), on);
        }
        public static void SetAttribute(Qt.ApplicationAttribute attribute) {
            staticInterceptor.Invoke("setAttribute$", "setAttribute(Qt::ApplicationAttribute)", typeof(void), typeof(Qt.ApplicationAttribute), attribute);
        }
        public static bool TestAttribute(Qt.ApplicationAttribute attribute) {
            return (bool) staticInterceptor.Invoke("testAttribute$", "testAttribute(Qt::ApplicationAttribute)", typeof(bool), typeof(Qt.ApplicationAttribute), attribute);
        }
        public static QCoreApplication Instance() {
            return (QCoreApplication) staticInterceptor.Invoke("instance", "instance()", typeof(QCoreApplication));
        }
        public static int Exec() {
            int result = (int) staticInterceptor.Invoke("exec", "exec()", typeof(int));
            Qyoto.Cleanup();
            return result;
        }
        public static void ProcessEvents(uint flags) {
            staticInterceptor.Invoke("processEvents$", "processEvents(QEventLoop::ProcessEventsFlags)", typeof(void), typeof(uint), flags);
        }
        public static void ProcessEvents() {
            staticInterceptor.Invoke("processEvents", "processEvents()", typeof(void));
        }
        public static void ProcessEvents(uint flags, int maxtime) {
            staticInterceptor.Invoke("processEvents$$", "processEvents(QEventLoop::ProcessEventsFlags, int)", typeof(void), typeof(uint), flags, typeof(int), maxtime);
        }
        public static void Exit(int retcode) {
            staticInterceptor.Invoke("exit$", "exit(int)", typeof(void), typeof(int), retcode);
        }
        public static void Exit() {
            staticInterceptor.Invoke("exit", "exit()", typeof(void));
        }
        public static bool SendEvent(QObject receiver, QEvent arg2) {
            return (bool) staticInterceptor.Invoke("sendEvent##", "sendEvent(QObject*, QEvent*)", typeof(bool), typeof(QObject), receiver, typeof(QEvent), arg2);
        }
        public static void PostEvent(QObject receiver, QEvent arg2) {
            staticInterceptor.Invoke("postEvent##", "postEvent(QObject*, QEvent*)", typeof(void), typeof(QObject), receiver, typeof(QEvent), arg2);
        }
        public static void PostEvent(QObject receiver, QEvent arg2, int priority) {
            staticInterceptor.Invoke("postEvent##$", "postEvent(QObject*, QEvent*, int)", typeof(void), typeof(QObject), receiver, typeof(QEvent), arg2, typeof(int), priority);
        }
        public static void SendPostedEvents(QObject receiver, int event_type) {
            staticInterceptor.Invoke("sendPostedEvents#$", "sendPostedEvents(QObject*, int)", typeof(void), typeof(QObject), receiver, typeof(int), event_type);
        }
        public static void SendPostedEvents() {
            staticInterceptor.Invoke("sendPostedEvents", "sendPostedEvents()", typeof(void));
        }
        public static void RemovePostedEvents(QObject receiver) {
            staticInterceptor.Invoke("removePostedEvents#", "removePostedEvents(QObject*)", typeof(void), typeof(QObject), receiver);
        }
        public static void RemovePostedEvents(QObject receiver, int eventType) {
            staticInterceptor.Invoke("removePostedEvents#$", "removePostedEvents(QObject*, int)", typeof(void), typeof(QObject), receiver, typeof(int), eventType);
        }
        public static bool HasPendingEvents() {
            return (bool) staticInterceptor.Invoke("hasPendingEvents", "hasPendingEvents()", typeof(bool));
        }
        public static bool StartingUp() {
            return (bool) staticInterceptor.Invoke("startingUp", "startingUp()", typeof(bool));
        }
        public static bool ClosingDown() {
            return (bool) staticInterceptor.Invoke("closingDown", "closingDown()", typeof(bool));
        }
        public static string ApplicationDirPath() {
            return (string) staticInterceptor.Invoke("applicationDirPath", "applicationDirPath()", typeof(string));
        }
        public static string ApplicationFilePath() {
            return (string) staticInterceptor.Invoke("applicationFilePath", "applicationFilePath()", typeof(string));
        }
        public static long ApplicationPid() {
            return (long) staticInterceptor.Invoke("applicationPid", "applicationPid()", typeof(long));
        }
        public static void SetLibraryPaths(List<string> arg1) {
            staticInterceptor.Invoke("setLibraryPaths?", "setLibraryPaths(const QStringList&)", typeof(void), typeof(List<string>), arg1);
        }
        public static List<string> LibraryPaths() {
            return (List<string>) staticInterceptor.Invoke("libraryPaths", "libraryPaths()", typeof(List<string>));
        }
        public static void AddLibraryPath(string arg1) {
            staticInterceptor.Invoke("addLibraryPath$", "addLibraryPath(const QString&)", typeof(void), typeof(string), arg1);
        }
        public static void RemoveLibraryPath(string arg1) {
            staticInterceptor.Invoke("removeLibraryPath$", "removeLibraryPath(const QString&)", typeof(void), typeof(string), arg1);
        }
        public static void InstallTranslator(QTranslator messageFile) {
            staticInterceptor.Invoke("installTranslator#", "installTranslator(QTranslator*)", typeof(void), typeof(QTranslator), messageFile);
        }
        public static void RemoveTranslator(QTranslator messageFile) {
            staticInterceptor.Invoke("removeTranslator#", "removeTranslator(QTranslator*)", typeof(void), typeof(QTranslator), messageFile);
        }
        public static string Translate(string context, string key, string disambiguation, QCoreApplication.Encoding encoding) {
            return (string) staticInterceptor.Invoke("translate$$$$", "translate(const char*, const char*, const char*, QCoreApplication::Encoding)", typeof(string), typeof(string), context, typeof(string), key, typeof(string), disambiguation, typeof(QCoreApplication.Encoding), encoding);
        }
        public static string Translate(string context, string key, string disambiguation) {
            return (string) staticInterceptor.Invoke("translate$$$", "translate(const char*, const char*, const char*)", typeof(string), typeof(string), context, typeof(string), key, typeof(string), disambiguation);
        }
        public static string Translate(string context, string key) {
            return (string) staticInterceptor.Invoke("translate$$", "translate(const char*, const char*)", typeof(string), typeof(string), context, typeof(string), key);
        }
        public static string Translate(string context, string key, string disambiguation, QCoreApplication.Encoding encoding, int n) {
            return (string) staticInterceptor.Invoke("translate$$$$$", "translate(const char*, const char*, const char*, QCoreApplication::Encoding, int)", typeof(string), typeof(string), context, typeof(string), key, typeof(string), disambiguation, typeof(QCoreApplication.Encoding), encoding, typeof(int), n);
        }
        public static void Flush() {
            staticInterceptor.Invoke("flush", "flush()", typeof(void));
        }
        public static void Quit() {
            staticInterceptor.Invoke("quit", "quit()", typeof(void));
        }
        protected new IQCoreApplicationSignals Emit {
            get { return (IQCoreApplicationSignals) Q_EMIT; }
        }
    }

    public interface IQCoreApplicationSignals : IQObjectSignals {
        [Q_SIGNAL("void aboutToQuit()")]
        void AboutToQuit();
        [Q_SIGNAL("void unixSignal(int)")]
        void UnixSignal(int arg1);
    }
}
