//Auto-generated by kalyptus. DO NOT EDIT.
namespace Phonon {
    using Phonon;
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks> \class VideoWidget videowidget.h Phonon/VideoWidget
    ///  \short Widget to display video.
    ///  This widget shows the video signal.
    ///  <pre>
    ///  MediaObject media = new MediaObject(parent);
    ///  VideoWidget vwidget = new VideoWidget(parent);
    ///  Phonon.CreatePath(media, vwidget);
    ///  </pre>
    ///  \ingroup PhononVideo
    ///  \ingroup PhononWidgets
    ///  \author Matthias Kretz <kretz@kde.org>
    ///      </remarks>        <short>   \class VideoWidget videowidget.</short>
    [SmokeClass("Phonon::VideoWidget")]
    public class VideoWidget : QWidget, Phonon.IAbstractVideoOutput, IDisposable {
        protected VideoWidget(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(VideoWidget), this);
        }
        /// <remarks>
        ///  Defines the width:height to be used for the video.
        ///              </remarks>        <short>    Defines the width:height to be used for the video.</short>
        public enum AspectRatio {
            AspectRatioAuto = 0,
            AspectRatioWidget = 1,
            AspectRatio4_3 = 2,
            AspectRatio16_9 = 3,
        }
        public enum ScaleMode {
            FitInView = 0,
            ScaleAndCrop = 1,
        }
        [Q_PROPERTY("bool", "fullScreen")]
        public new bool FullScreen {
            get { return (bool) interceptor.Invoke("isFullScreen", "isFullScreen()", typeof(bool)); }
            set { interceptor.Invoke("setFullScreen$", "setFullScreen(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("Phonon::VideoWidget::AspectRatio", "aspectRatio")]
        public Phonon.VideoWidget.AspectRatio aspectRatio {
            get { return (Phonon.VideoWidget.AspectRatio) interceptor.Invoke("aspectRatio", "aspectRatio()", typeof(Phonon.VideoWidget.AspectRatio)); }
            set { interceptor.Invoke("setAspectRatio$", "setAspectRatio(Phonon::VideoWidget::AspectRatio)", typeof(void), typeof(Phonon.VideoWidget.AspectRatio), value); }
        }
        [Q_PROPERTY("Phonon::VideoWidget::ScaleMode", "scaleMode")]
        public Phonon.VideoWidget.ScaleMode scaleMode {
            get { return (Phonon.VideoWidget.ScaleMode) interceptor.Invoke("scaleMode", "scaleMode()", typeof(Phonon.VideoWidget.ScaleMode)); }
            set { interceptor.Invoke("setScaleMode$", "setScaleMode(Phonon::VideoWidget::ScaleMode)", typeof(void), typeof(Phonon.VideoWidget.ScaleMode), value); }
        }
        [Q_PROPERTY("qreal", "brightness")]
        public double Brightness {
            get { return (double) interceptor.Invoke("brightness", "brightness()", typeof(double)); }
            set { interceptor.Invoke("setBrightness$", "setBrightness(qreal)", typeof(void), typeof(double), value); }
        }
        [Q_PROPERTY("qreal", "contrast")]
        public double Contrast {
            get { return (double) interceptor.Invoke("contrast", "contrast()", typeof(double)); }
            set { interceptor.Invoke("setContrast$", "setContrast(qreal)", typeof(void), typeof(double), value); }
        }
        [Q_PROPERTY("qreal", "hue")]
        public double Hue {
            get { return (double) interceptor.Invoke("hue", "hue()", typeof(double)); }
            set { interceptor.Invoke("setHue$", "setHue(qreal)", typeof(void), typeof(double), value); }
        }
        [Q_PROPERTY("qreal", "saturation")]
        public double Saturation {
            get { return (double) interceptor.Invoke("saturation", "saturation()", typeof(double)); }
            set { interceptor.Invoke("setSaturation$", "setSaturation(qreal)", typeof(void), typeof(double), value); }
        }
        // Phonon::VideoWidget* VideoWidget(Phonon::VideoWidgetPrivate& arg1,QWidget* arg2); >>>> NOT CONVERTED
        // Phonon::AbstractVideoOutput* AbstractVideoOutput(Phonon::AbstractVideoOutputPrivate& arg1); >>>> NOT CONVERTED
        // Phonon::MediaNode* MediaNode(Phonon::MediaNodePrivate& arg1); >>>> NOT CONVERTED
        /// <remarks>
        ///  Constructs a new video widget with a <pre>parent</pre>.
        ///              </remarks>        <short>    Constructs a new video widget with a \p parent.</short>
        public VideoWidget(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("VideoWidget#", "VideoWidget(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public VideoWidget() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("VideoWidget", "VideoWidget()", typeof(void));
        }
        [Q_SLOT("void setFullScreen(bool)")]
        public void SetFullScreen(bool fullscreen) {
            interceptor.Invoke("setFullScreen$", "setFullScreen(bool)", typeof(void), typeof(bool), fullscreen);
        }
        /// <remarks>
        ///  Convenience slot, calling setFullScreen(false)
        ///              </remarks>        <short>    Convenience slot, calling setFullScreen(false)              </short>
        [Q_SLOT("void exitFullScreen()")]
        public void ExitFullScreen() {
            interceptor.Invoke("exitFullScreen", "exitFullScreen()", typeof(void));
        }
        /// <remarks>
        ///  Convenience slot, calling setFullScreen(true)
        ///              </remarks>        <short>    Convenience slot, calling setFullScreen(true)              </short>
        [Q_SLOT("void enterFullScreen()")]
        public void EnterFullScreen() {
            interceptor.Invoke("enterFullScreen", "enterFullScreen()", typeof(void));
        }
        [Q_SLOT("void setAspectRatio(AspectRatio)")]
        public void SetAspectRatio(Phonon.VideoWidget.AspectRatio arg1) {
            interceptor.Invoke("setAspectRatio$", "setAspectRatio(Phonon::VideoWidget::AspectRatio)", typeof(void), typeof(Phonon.VideoWidget.AspectRatio), arg1);
        }
        [Q_SLOT("void setScaleMode(ScaleMode)")]
        public void SetScaleMode(Phonon.VideoWidget.ScaleMode arg1) {
            interceptor.Invoke("setScaleMode$", "setScaleMode(Phonon::VideoWidget::ScaleMode)", typeof(void), typeof(Phonon.VideoWidget.ScaleMode), arg1);
        }
        [Q_SLOT("void setBrightness(qreal)")]
        public void SetBrightness(double value) {
            interceptor.Invoke("setBrightness$", "setBrightness(qreal)", typeof(void), typeof(double), value);
        }
        [Q_SLOT("void setContrast(qreal)")]
        public void SetContrast(double value) {
            interceptor.Invoke("setContrast$", "setContrast(qreal)", typeof(void), typeof(double), value);
        }
        [Q_SLOT("void setHue(qreal)")]
        public void SetHue(double value) {
            interceptor.Invoke("setHue$", "setHue(qreal)", typeof(void), typeof(double), value);
        }
        [Q_SLOT("void setSaturation(qreal)")]
        public void SetSaturation(double value) {
            interceptor.Invoke("setSaturation$", "setSaturation(qreal)", typeof(void), typeof(double), value);
        }
        /// <remarks>
        ///  \internal
        ///  Constructs a new video widget with private data pointer <pre>d</pre> and
        ///  a <pre>parent</pre>.
        ///              </remarks>        <short>    \internal </short>
        [SmokeMethod("mouseMoveEvent(QMouseEvent*)")]
        protected override void MouseMoveEvent(QMouseEvent arg1) {
            interceptor.Invoke("mouseMoveEvent#", "mouseMoveEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), arg1);
        }
        [SmokeMethod("event(QEvent*)")]
        protected override bool Event(QEvent arg1) {
            return (bool) interceptor.Invoke("event#", "event(QEvent*)", typeof(bool), typeof(QEvent), arg1);
        }
        ~VideoWidget() {
            interceptor.Invoke("~VideoWidget", "~VideoWidget()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~VideoWidget", "~VideoWidget()", typeof(void));
        }
        /// <remarks>
        ///  Tells whether the backend provides an implementation of this
        ///  class.
        ///  \return <code>true</code> if backend provides an implementation
        ///  \return <code>false</code> if the object is not implemented by the backend
        ///          </remarks>        <short>    Tells whether the backend provides an implementation of this  class.</short>
        public bool IsValid() {
            return (bool) interceptor.Invoke("isValid", "isValid() const", typeof(bool));
        }
        public List<Phonon.Path> InputPaths() {
            return (List<Phonon.Path>) interceptor.Invoke("inputPaths", "inputPaths() const", typeof(List<Phonon.Path>));
        }
        public List<Phonon.Path> OutputPaths() {
            return (List<Phonon.Path>) interceptor.Invoke("outputPaths", "outputPaths() const", typeof(List<Phonon.Path>));
        }
        [SmokeMethod("devType() const")]
        public virtual int DevType() {
            return (int) interceptor.Invoke("devType", "devType() const", typeof(int));
        }
        public bool PaintingActive() {
            return (bool) interceptor.Invoke("paintingActive", "paintingActive() const", typeof(bool));
        }
        [SmokeMethod("paintEngine() const")]
        public virtual QPaintEngine PaintEngine() {
            return (QPaintEngine) interceptor.Invoke("paintEngine", "paintEngine() const", typeof(QPaintEngine));
        }
        public int Width() {
            return (int) interceptor.Invoke("width", "width() const", typeof(int));
        }
        public int Height() {
            return (int) interceptor.Invoke("height", "height() const", typeof(int));
        }
        public int WidthMM() {
            return (int) interceptor.Invoke("widthMM", "widthMM() const", typeof(int));
        }
        public int HeightMM() {
            return (int) interceptor.Invoke("heightMM", "heightMM() const", typeof(int));
        }
        public int LogicalDpiX() {
            return (int) interceptor.Invoke("logicalDpiX", "logicalDpiX() const", typeof(int));
        }
        public int LogicalDpiY() {
            return (int) interceptor.Invoke("logicalDpiY", "logicalDpiY() const", typeof(int));
        }
        public int PhysicalDpiX() {
            return (int) interceptor.Invoke("physicalDpiX", "physicalDpiX() const", typeof(int));
        }
        public int PhysicalDpiY() {
            return (int) interceptor.Invoke("physicalDpiY", "physicalDpiY() const", typeof(int));
        }
        public int NumColors() {
            return (int) interceptor.Invoke("numColors", "numColors() const", typeof(int));
        }
        public int Depth() {
            return (int) interceptor.Invoke("depth", "depth() const", typeof(int));
        }
        [SmokeMethod("metric(QPaintDevice::PaintDeviceMetric) const")]
        protected virtual int Metric(QPaintDevice.PaintDeviceMetric metric) {
            return (int) interceptor.Invoke("metric$", "metric(QPaintDevice::PaintDeviceMetric) const", typeof(int), typeof(QPaintDevice.PaintDeviceMetric), metric);
        }
        protected new IVideoWidgetSignals Emit {
            get { return (IVideoWidgetSignals) Q_EMIT; }
        }
    }

    public interface IVideoWidgetSignals : IQWidgetSignals {
    }
}
