//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QGraphicsItemGroup")]
    public class QGraphicsItemGroup : QGraphicsItem, IDisposable {
        protected QGraphicsItemGroup(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QGraphicsItemGroup), this);
        }
        public new const int Type = 10;
        public QGraphicsItemGroup(IQGraphicsItem parent, QGraphicsScene scene) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QGraphicsItemGroup##", "QGraphicsItemGroup(QGraphicsItem*, QGraphicsScene*)", typeof(void), typeof(IQGraphicsItem), parent, typeof(QGraphicsScene), scene);
        }
        public QGraphicsItemGroup(IQGraphicsItem parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QGraphicsItemGroup#", "QGraphicsItemGroup(QGraphicsItem*)", typeof(void), typeof(IQGraphicsItem), parent);
        }
        public QGraphicsItemGroup() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QGraphicsItemGroup", "QGraphicsItemGroup()", typeof(void));
        }
        public void AddToGroup(IQGraphicsItem item) {
            interceptor.Invoke("addToGroup#", "addToGroup(QGraphicsItem*)", typeof(void), typeof(IQGraphicsItem), item);
        }
        public void RemoveFromGroup(IQGraphicsItem item) {
            interceptor.Invoke("removeFromGroup#", "removeFromGroup(QGraphicsItem*)", typeof(void), typeof(IQGraphicsItem), item);
        }
        [SmokeMethod("boundingRect() const")]
        public override QRectF BoundingRect() {
            return (QRectF) interceptor.Invoke("boundingRect", "boundingRect() const", typeof(QRectF));
        }
        [SmokeMethod("paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*)")]
        public override void Paint(QPainter painter, QStyleOptionGraphicsItem option, QWidget widget) {
            interceptor.Invoke("paint###", "paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*)", typeof(void), typeof(QPainter), painter, typeof(QStyleOptionGraphicsItem), option, typeof(QWidget), widget);
        }
        [SmokeMethod("paint(QPainter*, const QStyleOptionGraphicsItem*)")]
        public virtual void Paint(QPainter painter, QStyleOptionGraphicsItem option) {
            interceptor.Invoke("paint##", "paint(QPainter*, const QStyleOptionGraphicsItem*)", typeof(void), typeof(QPainter), painter, typeof(QStyleOptionGraphicsItem), option);
        }
        [SmokeMethod("isObscuredBy(const QGraphicsItem*) const")]
        public override bool IsObscuredBy(IQGraphicsItem item) {
            return (bool) interceptor.Invoke("isObscuredBy#", "isObscuredBy(const QGraphicsItem*) const", typeof(bool), typeof(IQGraphicsItem), item);
        }
        [SmokeMethod("opaqueArea() const")]
        public override QPainterPath OpaqueArea() {
            return (QPainterPath) interceptor.Invoke("opaqueArea", "opaqueArea() const", typeof(QPainterPath));
        }
        [SmokeMethod("type() const")]
        public override int type() {
            return (int) interceptor.Invoke("type", "type() const", typeof(int));
        }
        ~QGraphicsItemGroup() {
            interceptor.Invoke("~QGraphicsItemGroup", "~QGraphicsItemGroup()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QGraphicsItemGroup", "~QGraphicsItemGroup()", typeof(void));
        }
    }
}
