//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  Configure dictionaries of key/action associations for KActions,
    ///  including global shortcuts.
    ///  The class takes care of all aspects of configuration, including
    ///  handling key conflicts internally. Connect to the allDefault()
    ///  slot if you want to set all configurable shortcuts to their
    ///  default values.
    ///  See <see cref="IKShortcutsEditorSignals"></see> for signals emitted by KShortcutsEditor
    /// </remarks>        <author> Michael Jansen <kde@michael-jansen.biz>
    ///  </author>
    ///         <short> Widget for configuration of KAccel and KGlobalAccel. </short>
    ///         <see> KShortcutsDialog</see>
    [SmokeClass("KShortcutsEditor")]
    public class KShortcutsEditor : QWidget, IDisposable {
        protected KShortcutsEditor(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KShortcutsEditor), this);
        }
        public enum ActionType : uint {
            WidgetAction = Qt.ShortcutContext.WidgetShortcut,
            WindowAction = Qt.ShortcutContext.WindowShortcut,
            ApplicationAction = Qt.ShortcutContext.ApplicationShortcut,
            GlobalAction = 4,
            AllActions = 0xffffffff,
        }
        public enum LetterShortcuts {
            LetterShortcutsDisallowed = 0,
            LetterShortcutsAllowed = 1,
        }
        /// <remarks>
        ///  Constructor.
        /// <param> name="collection" the KActionCollection to configure
        /// </param><param> name="parent" parent widget
        /// </param><param> name="actionTypes" types of actions to display in this widget.
        /// </param><param> name="allowLetterShortcuts" set to LetterShortcutsDisallowed if unmodified alphanumeric
        ///   keys ('A', '1', etc.) are not permissible shortcuts.
        /// 	 </param></remarks>        <short>    Constructor.</short>
        public KShortcutsEditor(KActionCollection collection, QWidget parent, uint actionTypes, KShortcutsEditor.LetterShortcuts allowLetterShortcuts) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutsEditor##$$", "KShortcutsEditor(KActionCollection*, QWidget*, KShortcutsEditor::ActionTypes, KShortcutsEditor::LetterShortcuts)", typeof(void), typeof(KActionCollection), collection, typeof(QWidget), parent, typeof(uint), actionTypes, typeof(KShortcutsEditor.LetterShortcuts), allowLetterShortcuts);
        }
        public KShortcutsEditor(KActionCollection collection, QWidget parent, uint actionTypes) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutsEditor##$", "KShortcutsEditor(KActionCollection*, QWidget*, KShortcutsEditor::ActionTypes)", typeof(void), typeof(KActionCollection), collection, typeof(QWidget), parent, typeof(uint), actionTypes);
        }
        public KShortcutsEditor(KActionCollection collection, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutsEditor##", "KShortcutsEditor(KActionCollection*, QWidget*)", typeof(void), typeof(KActionCollection), collection, typeof(QWidget), parent);
        }
        /// <remarks>
        ///  \overload
        ///  Creates a key chooser without a starting action collection.
        /// <param> name="parent" parent widget
        /// </param><param> name="actionTypes" types of actions to display in this widget.
        /// </param><param> name="allowLetterShortcuts" set to LetterShortcutsDisallowed if unmodified alphanumeric
        ///   keys ('A', '1', etc.) are not permissible shortcuts.
        /// 	 </param></remarks>        <short>    \overload </short>
        public KShortcutsEditor(QWidget parent, uint actionTypes, KShortcutsEditor.LetterShortcuts allowLetterShortcuts) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutsEditor#$$", "KShortcutsEditor(QWidget*, KShortcutsEditor::ActionTypes, KShortcutsEditor::LetterShortcuts)", typeof(void), typeof(QWidget), parent, typeof(uint), actionTypes, typeof(KShortcutsEditor.LetterShortcuts), allowLetterShortcuts);
        }
        public KShortcutsEditor(QWidget parent, uint actionTypes) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutsEditor#$", "KShortcutsEditor(QWidget*, KShortcutsEditor::ActionTypes)", typeof(void), typeof(QWidget), parent, typeof(uint), actionTypes);
        }
        public KShortcutsEditor(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KShortcutsEditor#", "KShortcutsEditor(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        /// <remarks>
        ///  Are the unsaved changes?
        ///      </remarks>        <short>    Are the unsaved changes?      </short>
        public bool IsModified() {
            return (bool) interceptor.Invoke("isModified", "isModified() const", typeof(bool));
        }
        /// <remarks>
        ///  Removes all action collections from the editor
        /// 	 </remarks>        <short>    Removes all action collections from the editor 	 </short>
        public void ClearCollections() {
            interceptor.Invoke("clearCollections", "clearCollections()", typeof(void));
        }
        /// <remarks>
        ///  Insert an action collection, i.e. add all its actions to the ones
        ///  already associated with the KShortcutsEditor object.
        /// <param> name="title" subtree title of this collection of shortcut.
        /// 	 </param></remarks>        <short>    Insert an action collection, i.</short>
        public void AddCollection(KActionCollection arg1, string title) {
            interceptor.Invoke("addCollection#$", "addCollection(KActionCollection*, const QString&)", typeof(void), typeof(KActionCollection), arg1, typeof(string), title);
        }
        public void AddCollection(KActionCollection arg1) {
            interceptor.Invoke("addCollection#", "addCollection(KActionCollection*)", typeof(void), typeof(KActionCollection), arg1);
        }
        /// <remarks>
        ///  Undo all change made since the last commit().
        /// 	 </remarks>        <short>    Undo all change made since the last commit().</short>
        public void UndoChanges() {
            interceptor.Invoke("undoChanges", "undoChanges()", typeof(void));
        }
        /// <remarks>
        ///  Save the changes.
        ///  Before saving the changes are committed. This saves the actions to disk.
        ///  Any KActionCollection objects with the xmlFile() value set will be
        ///  written to an XML file.  All other will be written to the application's
        ///  rc file.
        ///      </remarks>        <short>    Save the changes.</short>
        public void Save() {
            interceptor.Invoke("save", "save()", typeof(void));
        }
        /// <remarks>
        ///  Commit the changes without saving.
        ///  This commits the changes without saving.
        /// </remarks>        <short>    Commit the changes without saving.</short>
        public void Commit() {
            interceptor.Invoke("commit", "commit()", typeof(void));
        }
        /// <remarks>
        ///  Write the current settings to the <pre>config</pre> object.
        ///  This does not initialize the <pre>config</pre> object. It adds the
        ///  configuration. 
        ///  @note this will not save the global configuration! globalaccel holds
        ///  that part of the configuration.
        /// <param> name="config" Config object to save to or, or null to use the
        ///                applications config object
        /// </param>     </remarks>        <short>    Write the current settings to the \p config object.</short>
        ///         <see> writeGlobalConfig</see>
        public void WriteConfiguration(KConfigGroup config) {
            interceptor.Invoke("writeConfiguration#", "writeConfiguration(KConfigGroup*) const", typeof(void), typeof(KConfigGroup), config);
        }
        public void WriteConfiguration() {
            interceptor.Invoke("writeConfiguration", "writeConfiguration() const", typeof(void));
        }
        /// <remarks>
        ///  Export the current setting to configuration <code>config.</code>
        ///  This initializes the configuration object. This will export the global
        ///  configuration too.
        /// <param> name="config" Config object
        ///      </param></remarks>        <short>    Export the current setting to configuration <code>config.</code></short>
        public void ExportConfiguration(KConfig config) {
            interceptor.Invoke("exportConfiguration#", "exportConfiguration(KConfig*) const", typeof(void), typeof(KConfig), config);
        }
        /// <remarks>
        ///  Import the settings from configuration <code>config.</code>
        ///  This will remove all current setting before importing. All shortcuts
        ///  are set to KShortcut() prior to importing from <code>config</code>!
        /// <param> name="config" Config object
        ///      </param></remarks>        <short>    Import the settings from configuration <code>config.</code></short>
        public void ImportConfiguration(KConfig config) {
            interceptor.Invoke("importConfiguration#", "importConfiguration(KConfig*)", typeof(void), typeof(KConfig), config);
        }
        /// <remarks>
        ///  Resize colums to width required
        /// 	 </remarks>        <short>    Resize colums to width required 	 </short>
        [Q_SLOT("void resizeColumns()")]
        public void ResizeColumns() {
            interceptor.Invoke("resizeColumns", "resizeColumns()", typeof(void));
        }
        /// <remarks>
        ///  Set all shortcuts to their default values (bindings).
        /// </remarks>        <short>    Set all shortcuts to their default values (bindings).</short>
        [Q_SLOT("void allDefault()")]
        public void AllDefault() {
            interceptor.Invoke("allDefault", "allDefault()", typeof(void));
        }
        /// <remarks>
        ///  Opens a printing dialog to print all the shortcuts
        ///          </remarks>        <short>    Opens a printing dialog to print all the shortcuts          </short>
        [Q_SLOT("void printShortcuts()")]
        public void PrintShortcuts() {
            interceptor.Invoke("printShortcuts", "printShortcuts() const", typeof(void));
        }
        ~KShortcutsEditor() {
            interceptor.Invoke("~KShortcutsEditor", "~KShortcutsEditor()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KShortcutsEditor", "~KShortcutsEditor()", typeof(void));
        }
        protected new IKShortcutsEditorSignals Emit {
            get { return (IKShortcutsEditorSignals) Q_EMIT; }
        }
    }

    public interface IKShortcutsEditorSignals : IQWidgetSignals {
        /// <remarks>
        ///  Emitted when an action's shortcut has been changed.
        /// </remarks>        <short>    Emitted when an action's shortcut has been changed.</short>
        [Q_SIGNAL("void keyChange()")]
        void KeyChange();
    }
}
