//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IKShortcutWidgetSignals"></see> for signals emitted by KShortcutWidget
    /// </remarks>
    [SmokeClass("KShortcutWidget")]
    public class KShortcutWidget : QWidget, IDisposable {
        protected KShortcutWidget(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KShortcutWidget), this);
        }
        public KShortcutWidget(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutWidget#", "KShortcutWidget(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public KShortcutWidget() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutWidget", "KShortcutWidget()", typeof(void));
        }
        public void SetModifierlessAllowed(bool allow) {
            interceptor.Invoke("setModifierlessAllowed$", "setModifierlessAllowed(bool)", typeof(void), typeof(bool), allow);
        }
        public bool IsModifierlessAllowed() {
            return (bool) interceptor.Invoke("isModifierlessAllowed", "isModifierlessAllowed()", typeof(bool));
        }
        public void SetClearButtonsShown(bool show) {
            interceptor.Invoke("setClearButtonsShown$", "setClearButtonsShown(bool)", typeof(void), typeof(bool), show);
        }
        public KShortcut Shortcut() {
            return (KShortcut) interceptor.Invoke("shortcut", "shortcut() const", typeof(KShortcut));
        }
        /// <remarks>
        ///  Set a list of action collections to check against for conflictuous shortcut.
        ///  If there is a conflictuous shortcut with a KAction, and that his shortcut can be configured
        ///  (KAction.IsShortcutConfigurable() returns true) the user will be prompted for eventually steal
        ///  the shortcut from this action
        ///  Global shortcuts are automatically checked for conflicts
        ///  Don't forget to call applyStealShortcut to actually steal the shortcut.
        /// </remarks>        <short>    Set a list of action collections to check against for conflictuous shortcut.</short>
        public void SetCheckActionCollections(List<KActionCollection> actionCollections) {
            interceptor.Invoke("setCheckActionCollections?", "setCheckActionCollections(const QList<KActionCollection*>&)", typeof(void), typeof(List<KActionCollection>), actionCollections);
        }
        [Q_SLOT("void setShortcut(KShortcut)")]
        public void SetShortcut(KShortcut cut) {
            interceptor.Invoke("setShortcut#", "setShortcut(const KShortcut&)", typeof(void), typeof(KShortcut), cut);
        }
        [Q_SLOT("void clearShortcut()")]
        public void ClearShortcut() {
            interceptor.Invoke("clearShortcut", "clearShortcut()", typeof(void));
        }
        /// <remarks>
        ///  Actually remove the shortcut that the user wanted to steal, from the
        ///  action that was using it.
        ///  To be called before you apply your changes.
        ///  No shortcuts are stolen until this function is called.
        ///      </remarks>        <short>    Actually remove the shortcut that the user wanted to steal, from the  action that was using it.</short>
        [Q_SLOT("void applyStealShortcut()")]
        public void ApplyStealShortcut() {
            interceptor.Invoke("applyStealShortcut", "applyStealShortcut()", typeof(void));
        }
        ~KShortcutWidget() {
            interceptor.Invoke("~KShortcutWidget", "~KShortcutWidget()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KShortcutWidget", "~KShortcutWidget()", typeof(void));
        }
        protected new IKShortcutWidgetSignals Emit {
            get { return (IKShortcutWidgetSignals) Q_EMIT; }
        }
    }

    public interface IKShortcutWidgetSignals : IQWidgetSignals {
        [Q_SIGNAL("void shortcutChanged(KShortcut)")]
        void ShortcutChanged(KShortcut cut);
    }
}
