//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IQMovieSignals"></see> for signals emitted by QMovie
    /// </remarks>
    [SmokeClass("QMovie")]
    public class QMovie : QObject, IDisposable {
        protected QMovie(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QMovie), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QMovie() {
            staticInterceptor = new SmokeInvocation(typeof(QMovie), null);
        }
        public enum MovieState {
            NotRunning = 0,
            Paused = 1,
            Running = 2,
        }
        public enum CacheMode {
            CacheNone = 0,
            CacheAll = 1,
        }
        [Q_PROPERTY("int", "speed")]
        public int Speed {
            get { return (int) interceptor.Invoke("speed", "speed()", typeof(int)); }
            set { interceptor.Invoke("setSpeed$", "setSpeed(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("QMovie::CacheMode", "cacheMode")]
        public QMovie.CacheMode cacheMode {
            get { return (QMovie.CacheMode) interceptor.Invoke("cacheMode", "cacheMode()", typeof(QMovie.CacheMode)); }
            set { interceptor.Invoke("setCacheMode$", "setCacheMode(QMovie::CacheMode)", typeof(void), typeof(QMovie.CacheMode), value); }
        }
        public QMovie(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie#", "QMovie(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QMovie() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie", "QMovie()", typeof(void));
        }
        public QMovie(QIODevice device, QByteArray format, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie###", "QMovie(QIODevice*, const QByteArray&, QObject*)", typeof(void), typeof(QIODevice), device, typeof(QByteArray), format, typeof(QObject), parent);
        }
        public QMovie(QIODevice device, QByteArray format) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie##", "QMovie(QIODevice*, const QByteArray&)", typeof(void), typeof(QIODevice), device, typeof(QByteArray), format);
        }
        public QMovie(QIODevice device) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie#", "QMovie(QIODevice*)", typeof(void), typeof(QIODevice), device);
        }
        public QMovie(string fileName, QByteArray format, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie$##", "QMovie(const QString&, const QByteArray&, QObject*)", typeof(void), typeof(string), fileName, typeof(QByteArray), format, typeof(QObject), parent);
        }
        public QMovie(string fileName, QByteArray format) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie$#", "QMovie(const QString&, const QByteArray&)", typeof(void), typeof(string), fileName, typeof(QByteArray), format);
        }
        public QMovie(string fileName) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QMovie$", "QMovie(const QString&)", typeof(void), typeof(string), fileName);
        }
        public void SetDevice(QIODevice device) {
            interceptor.Invoke("setDevice#", "setDevice(QIODevice*)", typeof(void), typeof(QIODevice), device);
        }
        public QIODevice Device() {
            return (QIODevice) interceptor.Invoke("device", "device() const", typeof(QIODevice));
        }
        public void SetFileName(string fileName) {
            interceptor.Invoke("setFileName$", "setFileName(const QString&)", typeof(void), typeof(string), fileName);
        }
        public string FileName() {
            return (string) interceptor.Invoke("fileName", "fileName() const", typeof(string));
        }
        public void SetFormat(QByteArray format) {
            interceptor.Invoke("setFormat#", "setFormat(const QByteArray&)", typeof(void), typeof(QByteArray), format);
        }
        public QByteArray Format() {
            return (QByteArray) interceptor.Invoke("format", "format() const", typeof(QByteArray));
        }
        public void SetBackgroundColor(QColor color) {
            interceptor.Invoke("setBackgroundColor#", "setBackgroundColor(const QColor&)", typeof(void), typeof(QColor), color);
        }
        public QColor BackgroundColor() {
            return (QColor) interceptor.Invoke("backgroundColor", "backgroundColor() const", typeof(QColor));
        }
        public QMovie.MovieState State() {
            return (QMovie.MovieState) interceptor.Invoke("state", "state() const", typeof(QMovie.MovieState));
        }
        public QRect FrameRect() {
            return (QRect) interceptor.Invoke("frameRect", "frameRect() const", typeof(QRect));
        }
        public QImage CurrentImage() {
            return (QImage) interceptor.Invoke("currentImage", "currentImage() const", typeof(QImage));
        }
        public QPixmap CurrentPixmap() {
            return (QPixmap) interceptor.Invoke("currentPixmap", "currentPixmap() const", typeof(QPixmap));
        }
        public bool IsValid() {
            return (bool) interceptor.Invoke("isValid", "isValid() const", typeof(bool));
        }
        public bool JumpToFrame(int frameNumber) {
            return (bool) interceptor.Invoke("jumpToFrame$", "jumpToFrame(int)", typeof(bool), typeof(int), frameNumber);
        }
        public int LoopCount() {
            return (int) interceptor.Invoke("loopCount", "loopCount() const", typeof(int));
        }
        public int FrameCount() {
            return (int) interceptor.Invoke("frameCount", "frameCount() const", typeof(int));
        }
        public int NextFrameDelay() {
            return (int) interceptor.Invoke("nextFrameDelay", "nextFrameDelay() const", typeof(int));
        }
        public int CurrentFrameNumber() {
            return (int) interceptor.Invoke("currentFrameNumber", "currentFrameNumber() const", typeof(int));
        }
        public QSize ScaledSize() {
            return (QSize) interceptor.Invoke("scaledSize", "scaledSize()", typeof(QSize));
        }
        public void SetScaledSize(QSize size) {
            interceptor.Invoke("setScaledSize#", "setScaledSize(const QSize&)", typeof(void), typeof(QSize), size);
        }
        [Q_SLOT("void start()")]
        public void Start() {
            interceptor.Invoke("start", "start()", typeof(void));
        }
        [Q_SLOT("bool jumpToNextFrame()")]
        public bool JumpToNextFrame() {
            return (bool) interceptor.Invoke("jumpToNextFrame", "jumpToNextFrame()", typeof(bool));
        }
        [Q_SLOT("void setPaused(bool)")]
        public void SetPaused(bool paused) {
            interceptor.Invoke("setPaused$", "setPaused(bool)", typeof(void), typeof(bool), paused);
        }
        [Q_SLOT("void stop()")]
        public void Stop() {
            interceptor.Invoke("stop", "stop()", typeof(void));
        }
        [Q_SLOT("void setSpeed(int)")]
        public void SetSpeed(int percentSpeed) {
            interceptor.Invoke("setSpeed$", "setSpeed(int)", typeof(void), typeof(int), percentSpeed);
        }
        ~QMovie() {
            interceptor.Invoke("~QMovie", "~QMovie()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QMovie", "~QMovie()", 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<QByteArray> SupportedFormats() {
            return (List<QByteArray>) staticInterceptor.Invoke("supportedFormats", "supportedFormats()", typeof(List<QByteArray>));
        }
        protected new IQMovieSignals Emit {
            get { return (IQMovieSignals) Q_EMIT; }
        }
    }

    public interface IQMovieSignals : IQObjectSignals {
        [Q_SIGNAL("void started()")]
        void Started();
        [Q_SIGNAL("void resized(QSize)")]
        void Resized(QSize size);
        [Q_SIGNAL("void updated(QRect)")]
        void Updated(QRect rect);
        [Q_SIGNAL("void stateChanged(QMovie::MovieState)")]
        void StateChanged(QMovie.MovieState state);
        [Q_SIGNAL("void error(QImageReader::ImageReaderError)")]
        void Error(int error);
        [Q_SIGNAL("void finished()")]
        void Finished();
        [Q_SIGNAL("void frameChanged(int)")]
        void FrameChanged(int frameNumber);
    }
}
