//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QSize")]
    public class QSize : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QSize(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QSize), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QSize() {
            staticInterceptor = new SmokeInvocation(typeof(QSize), null);
        }
        public QSize() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSize", "QSize()", typeof(void));
        }
        public QSize(int w, int h) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QSize$$", "QSize(int, int)", typeof(void), typeof(int), w, typeof(int), h);
        }
        public bool IsNull() {
            return (bool) interceptor.Invoke("isNull", "isNull() const", typeof(bool));
        }
        public bool IsEmpty() {
            return (bool) interceptor.Invoke("isEmpty", "isEmpty() const", typeof(bool));
        }
        public bool IsValid() {
            return (bool) interceptor.Invoke("isValid", "isValid() const", typeof(bool));
        }
        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 void SetWidth(int w) {
            interceptor.Invoke("setWidth$", "setWidth(int)", typeof(void), typeof(int), w);
        }
        public void SetHeight(int h) {
            interceptor.Invoke("setHeight$", "setHeight(int)", typeof(void), typeof(int), h);
        }
        public void Transpose() {
            interceptor.Invoke("transpose", "transpose()", typeof(void));
        }
        public void Scale(int w, int h, Qt.AspectRatioMode mode) {
            interceptor.Invoke("scale$$$", "scale(int, int, Qt::AspectRatioMode)", typeof(void), typeof(int), w, typeof(int), h, typeof(Qt.AspectRatioMode), mode);
        }
        public void Scale(QSize s, Qt.AspectRatioMode mode) {
            interceptor.Invoke("scale#$", "scale(const QSize&, Qt::AspectRatioMode)", typeof(void), typeof(QSize), s, typeof(Qt.AspectRatioMode), mode);
        }
        public QSize ExpandedTo(QSize arg1) {
            return (QSize) interceptor.Invoke("expandedTo#", "expandedTo(const QSize&) const", typeof(QSize), typeof(QSize), arg1);
        }
        public QSize BoundedTo(QSize arg1) {
            return (QSize) interceptor.Invoke("boundedTo#", "boundedTo(const QSize&) const", typeof(QSize), typeof(QSize), arg1);
        }
        public int Rwidth() {
            return (int) interceptor.Invoke("rwidth", "rwidth()", typeof(int));
        }
        public int Rheight() {
            return (int) interceptor.Invoke("rheight", "rheight()", typeof(int));
        }
        ~QSize() {
            interceptor.Invoke("~QSize", "~QSize()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QSize", "~QSize()", typeof(void));
        }
        public override bool Equals(object o) {
            if (!(o is QSize)) { return false; }
            return this == (QSize) o;
        }
        public override int GetHashCode() {
            return interceptor.GetHashCode();
        }
        public static QSize operator*(QSize lhs, double c) {
            return (QSize) staticInterceptor.Invoke("operator*=$", "operator*=(qreal)", typeof(QSize), typeof(QSize), lhs, typeof(double), c);
        }
        public static QSize operator/(QSize lhs, double c) {
            return (QSize) staticInterceptor.Invoke("operator/=$", "operator/=(qreal)", typeof(QSize), typeof(QSize), lhs, typeof(double), c);
        }
        public static bool operator==(QSize s1, QSize s2) {
            return (bool) staticInterceptor.Invoke("operator==##", "operator==(const QSize&, const QSize&)", typeof(bool), typeof(QSize), s1, typeof(QSize), s2);
        }
        public static bool operator!=(QSize s1, QSize s2) {
            return !(bool) staticInterceptor.Invoke("operator==##", "operator==(const QSize&, const QSize&)", typeof(bool), typeof(QSize), s1, typeof(QSize), s2);
        }
        public static QSize operator+(QSize s1, QSize s2) {
            return (QSize) staticInterceptor.Invoke("operator+##", "operator+(const QSize&, const QSize&)", typeof(QSize), typeof(QSize), s1, typeof(QSize), s2);
        }
        public static QSize operator-(QSize s1, QSize s2) {
            return (QSize) staticInterceptor.Invoke("operator-##", "operator-(const QSize&, const QSize&)", typeof(QSize), typeof(QSize), s1, typeof(QSize), s2);
        }
        public static QSize operator*(double c, QSize s) {
            return (QSize) staticInterceptor.Invoke("operator*$#", "operator*(qreal, const QSize&)", typeof(QSize), typeof(double), c, typeof(QSize), s);
        }
    }
}
