//Auto-generated by kalyptus. DO NOT EDIT.
namespace Plasma {
    using Plasma;
    using System;
    using Kimono;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks>
    ///  @class ExtenderGroup plasma/extendergroup.h <Plasma/ExtenderGroup>
    ///  To be able to group multiple items together, you'll need to instantiate an ExtenderGroup, and
    ///  call setGroup() on all extender items you wish to add to this group.
    ///  This ExtenderGroup is just the same as any other ExtenderItem, except for the expand group and
    ///  collapse group buttons it provides, and the fact that it will automatically hide itself if less
    ///  then one item belong to this group and autoHide is set to true.
    /// </remarks>        <short> Allows for grouping of extender items. </short>
    [SmokeClass("Plasma::ExtenderGroup")]
    public class ExtenderGroup : Plasma.ExtenderItem, IDisposable {
        protected ExtenderGroup(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(ExtenderGroup), this);
        }
        [Q_PROPERTY("bool", "autoHide")]
        public bool AutoHide {
            get { return (bool) interceptor.Invoke("autoHide", "autoHide()", typeof(bool)); }
            set { interceptor.Invoke("setAutoHide$", "setAutoHide(bool)", typeof(void), typeof(bool), value); }
        }
        /// <remarks>
        ///  Creates a group.
        /// <param> name="applet" The applet this group is part of. Null is not allowed here.
        ///          </param></remarks>        <short>    Creates a group.</short>
        public ExtenderGroup(Plasma.Extender parent, uint groupId) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ExtenderGroup#$", "ExtenderGroup(Plasma::Extender*, uint)", typeof(void), typeof(Plasma.Extender), parent, typeof(uint), groupId);
        }
        public ExtenderGroup(Plasma.Extender parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ExtenderGroup#", "ExtenderGroup(Plasma::Extender*)", typeof(void), typeof(Plasma.Extender), parent);
        }
        /// <remarks>
        /// </remarks>        <return> a list of items that belong to this group.
        ///          </return>
        ///         <short>   </short>
        public List<Plasma.ExtenderItem> Items() {
            return (List<Plasma.ExtenderItem>) interceptor.Invoke("items", "items() const", typeof(List<Plasma.ExtenderItem>));
        }
        /// <remarks>
        ///  Expands this group to show all ExtenderItems that are contained in this group.
        ///          </remarks>        <short>    Expands this group to show all ExtenderItems that are contained in this group.</short>
        [Q_SLOT("void expandGroup()")]
        public void ExpandGroup() {
            interceptor.Invoke("expandGroup", "expandGroup()", typeof(void));
        }
        /// <remarks>
        ///  Collapses this group to hide all ExtenderItems that are contained in this group, and
        ///  shows the summary item.
        ///          </remarks>        <short>    Collapses this group to hide all ExtenderItems that are contained in this group, and  shows the summary item.</short>
        [Q_SLOT("void collapseGroup()")]
        public void CollapseGroup() {
            interceptor.Invoke("collapseGroup", "collapseGroup()", typeof(void));
        }
        ~ExtenderGroup() {
            interceptor.Invoke("~ExtenderGroup", "~ExtenderGroup()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~ExtenderGroup", "~ExtenderGroup()", typeof(void));
        }
        protected new IExtenderGroupSignals Emit {
            get { return (IExtenderGroupSignals) Q_EMIT; }
        }
    }

    public interface IExtenderGroupSignals : Plasma.IExtenderItemSignals {
    }
}
