//Auto-generated by kalyptus. DO NOT EDIT.
namespace Kimono {
    using System;
    using Qyoto;
    /// <remarks>
    ///  \short Standard %KDE configuration dialog class
    ///  The KConfigDialog class provides an easy and uniform means of displaying
    ///  a settings dialog using KPageDialog, KConfigDialogManager and a
    ///  KConfigSkeleton derived settings class.
    ///  KConfigDialog handles the enabling and disabling of buttons, creation
    ///  of the dialog, and deletion of the widgets.  Because of
    ///  KConfigDialogManager, this class also manages: restoring
    ///  the settings, reseting them to the default values, and saving them. This
    ///  requires that the names of the widgets corresponding to configuration entries
    ///  have to have the same name plus an additional "kcfg_" prefix. For example the
    ///  widget named "kcfg_MyOption" would be associated with the configuration entry
    ///  "MyOption".
    ///  Here is an example usage of KConfigDialog:
    ///  <pre>
    ///  void KCoolApp.ShowSettings(){
    ///    if(KConfigDialog.ShowDialog("settings"))
    ///      return;
    ///    KConfigDialog dialog = new KConfigDialog(this, "settings", MySettings.Self());
    ///    dialog.SetFaceType(KPageDialog.List);
    ///    dialog.AddPage(new General(0, "General"), i18n("General") );
    ///    dialog.AddPage(new Appearance(0, "Style"), i18n("Appearance") );
    ///    connect(dialog, SIGNAL("settingsChanged(string)"), mainWidget, SLOT("loadSettings()"));
    ///    connect(dialog, SIGNAL("settingsChanged(string)"), this, SLOT("loadSettings()"));
    ///    dialog.Show();
    ///  }
    ///  </pre>
    ///  Other than the above code, each class that has settings in the dialog should
    ///  have a loadSettings() type slot to read settings and perform any
    ///  necessary changes.
    ///  For dialog appearance options (like buttons, default button, ...) please see
    ///  See <see cref="IKConfigDialogSignals"></see> for signals emitted by KConfigDialog
    /// </remarks>        <author> Waldo Bastian <bastian@kde.org>
    ///  </author>
    ///         <short>    \short Standard %KDE configuration dialog class </short>
    ///         <see> KPageDialog</see>
    ///         <see> KConfigSkeleton</see>
    [SmokeClass("KConfigDialog")]
    public class KConfigDialog : KPageDialog, IDisposable {
        protected KConfigDialog(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(KConfigDialog), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static KConfigDialog() {
            staticInterceptor = new SmokeInvocation(typeof(KConfigDialog), null);
        }
        /// <remarks>
        /// <param> name="parent" - The parent of this object.  Even though the class
        ///  deletes itself the parent should be set so the dialog can be centered
        ///  with the application on the screen.
        /// </param><param> name="name" - The name of this object.  The name is used in determining if
        ///  there can be more than one dialog at a time.  Use names such as:
        ///  "Font Settings" or "Color Settings" and not just "Settings" in
        ///  applications where there is more than one dialog.
        /// </param><param> name="config" - Config object containing settings.
        ///    </param></remarks>        <short>   </short>
        public KConfigDialog(QWidget parent, string name, KConfigSkeleton config) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("KConfigDialog#$#", "KConfigDialog(QWidget*, const QString&, KConfigSkeleton*)", typeof(void), typeof(QWidget), parent, typeof(string), name, typeof(KConfigSkeleton), config);
        }
        /// <remarks>
        ///  Adds page to the dialog and to KConfigDialogManager.  When an
        ///  application is done adding pages show() should be called to
        ///  display the dialog.
        /// <param> name="page" - Pointer to the page that is to be added to the dialog.
        ///  This object is reparented.
        /// </param><param> name="itemName" - Name of the page.
        /// </param><param> name="pixmapName" - Name of the pixmap that should be used if needed.
        /// </param><param> name="header" - Header text use in the list modes. Ignored in Tabbed
        ///         mode. If empty, the itemName text is used when needed.
        /// </param><param> name="manage" - Whether KConfigDialogManager should manage the page or not.
        /// </param></remarks>        <return> The KPageWidgetItem associated with the page.
        ///    </return>
        ///         <short>    Adds page to the dialog and to KConfigDialogManager.</short>
        public KPageWidgetItem AddPage(QWidget page, string itemName, string pixmapName, string header, bool manage) {
            return (KPageWidgetItem) interceptor.Invoke("addPage#$$$$", "addPage(QWidget*, const QString&, const QString&, const QString&, bool)", typeof(KPageWidgetItem), typeof(QWidget), page, typeof(string), itemName, typeof(string), pixmapName, typeof(string), header, typeof(bool), manage);
        }
        public KPageWidgetItem AddPage(QWidget page, string itemName, string pixmapName, string header) {
            return (KPageWidgetItem) interceptor.Invoke("addPage#$$$", "addPage(QWidget*, const QString&, const QString&, const QString&)", typeof(KPageWidgetItem), typeof(QWidget), page, typeof(string), itemName, typeof(string), pixmapName, typeof(string), header);
        }
        public KPageWidgetItem AddPage(QWidget page, string itemName, string pixmapName) {
            return (KPageWidgetItem) interceptor.Invoke("addPage#$$", "addPage(QWidget*, const QString&, const QString&)", typeof(KPageWidgetItem), typeof(QWidget), page, typeof(string), itemName, typeof(string), pixmapName);
        }
        public new KPageWidgetItem AddPage(QWidget page, string itemName) {
            return (KPageWidgetItem) interceptor.Invoke("addPage#$", "addPage(QWidget*, const QString&)", typeof(KPageWidgetItem), typeof(QWidget), page, typeof(string), itemName);
        }
        /// <remarks>
        ///  Adds page to the dialog that is managed by a custom KConfigDialogManager.
        ///  This is useful for dialogs that contain settings spread over more than
        ///  one configuration file and thus have/need more than one KConfigSkeleton.
        ///  When an application is done adding pages show() should be called to
        ///  display the dialog.
        /// <param> name="page" - Pointer to the page that is to be added to the dialog.
        ///  This object is reparented.
        /// </param><param> name="config" - Config object containing corresponding settings.
        /// </param><param> name="itemName" - Name of the page.
        /// </param><param> name="pixmapName" - Name of the pixmap that should be used if needed.
        /// </param><param> name="header" - Header text use in the list modes. Ignored in Tabbed
        ///         mode. If empty, the itemName text is used when needed.
        /// </param></remarks>        <return> The KPageWidgetItem associated with the page.
        ///    </return>
        ///         <short>    Adds page to the dialog that is managed by a custom KConfigDialogManager.</short>
        public KPageWidgetItem AddPage(QWidget page, KConfigSkeleton config, string itemName, string pixmapName, string header) {
            return (KPageWidgetItem) interceptor.Invoke("addPage##$$$", "addPage(QWidget*, KConfigSkeleton*, const QString&, const QString&, const QString&)", typeof(KPageWidgetItem), typeof(QWidget), page, typeof(KConfigSkeleton), config, typeof(string), itemName, typeof(string), pixmapName, typeof(string), header);
        }
        public KPageWidgetItem AddPage(QWidget page, KConfigSkeleton config, string itemName, string pixmapName) {
            return (KPageWidgetItem) interceptor.Invoke("addPage##$$", "addPage(QWidget*, KConfigSkeleton*, const QString&, const QString&)", typeof(KPageWidgetItem), typeof(QWidget), page, typeof(KConfigSkeleton), config, typeof(string), itemName, typeof(string), pixmapName);
        }
        public KPageWidgetItem AddPage(QWidget page, KConfigSkeleton config, string itemName) {
            return (KPageWidgetItem) interceptor.Invoke("addPage##$", "addPage(QWidget*, KConfigSkeleton*, const QString&)", typeof(KPageWidgetItem), typeof(QWidget), page, typeof(KConfigSkeleton), config, typeof(string), itemName);
        }
        /// <remarks>
        ///  Returns whether the current state of the dialog is
        ///  different from the current configutation.
        ///  Virtual function for custom additions.
        ///    </remarks>        <short>    Returns whether the current state of the dialog is  different from the current configutation.</short>
        [SmokeMethod("hasChanged()")]
        protected virtual bool HasChanged() {
            return (bool) interceptor.Invoke("hasChanged", "hasChanged()", typeof(bool));
        }
        /// <remarks>
        ///  Returns whether the current state of the dialog is
        ///  the same as the default configuration.
        ///    </remarks>        <short>    Returns whether the current state of the dialog is  the same as the default configuration.</short>
        [SmokeMethod("isDefault()")]
        protected virtual bool IsDefault() {
            return (bool) interceptor.Invoke("isDefault", "isDefault()", typeof(bool));
        }
        /// <remarks>
        ///    </remarks>        <short>   </short>
        [SmokeMethod("showEvent(QShowEvent*)")]
        protected override void ShowEvent(QShowEvent e) {
            interceptor.Invoke("showEvent#", "showEvent(QShowEvent*)", typeof(void), typeof(QShowEvent), e);
        }
        /// <remarks>
        ///  Update the settings from the dialog.
        ///  Virtual function for custom additions.
        ///  Example use: User clicks Ok or Apply button in a configure dialog.
        ///    </remarks>        <short>    Update the settings from the dialog.</short>
        [Q_SLOT("void updateSettings()")]
        [SmokeMethod("updateSettings()")]
        protected virtual void UpdateSettings() {
            interceptor.Invoke("updateSettings", "updateSettings()", typeof(void));
        }
        /// <remarks>
        ///  Update the dialog based on the settings.
        ///  Virtual function for custom additions.
        ///  Example use: Initialisation of dialog.
        ///  Example use: User clicks Reset button in a configure dialog.
        ///    </remarks>        <short>    Update the dialog based on the settings.</short>
        [Q_SLOT("void updateWidgets()")]
        [SmokeMethod("updateWidgets()")]
        protected virtual void UpdateWidgets() {
            interceptor.Invoke("updateWidgets", "updateWidgets()", typeof(void));
        }
        /// <remarks>
        ///  Update the dialog based on the default settings.
        ///  Virtual function for custom additions.
        ///  Example use: User clicks Defaults button in a configure dialog.
        ///    </remarks>        <short>    Update the dialog based on the default settings.</short>
        [Q_SLOT("void updateWidgetsDefault()")]
        [SmokeMethod("updateWidgetsDefault()")]
        protected virtual void UpdateWidgetsDefault() {
            interceptor.Invoke("updateWidgetsDefault", "updateWidgetsDefault()", typeof(void));
        }
        ~KConfigDialog() {
            interceptor.Invoke("~KConfigDialog", "~KConfigDialog()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~KConfigDialog", "~KConfigDialog()", typeof(void));
        }
        /// <remarks>
        ///  See if a dialog with the name 'name' already exists.
        /// <param> name="name" - Dialog name to look for.
        /// </param></remarks>        <return> Pointer to widget or NULL if it does not exist.
        ///    </return>
        ///         <short>    See if a dialog with the name 'name' already exists.</short>
        ///         <see> showDialog</see>
        public static KConfigDialog Exists(string name) {
            return (KConfigDialog) staticInterceptor.Invoke("exists$", "exists(const QString&)", typeof(KConfigDialog), typeof(string), name);
        }
        /// <remarks>
        ///  Attempts to show the dialog with the name 'name'.
        /// <param> name="name" - The name of the dialog to show.
        /// </param></remarks>        <return> True if the dialog 'name' exists and was shown.
        ///    </return>
        ///         <short>    Attempts to show the dialog with the name 'name'.</short>
        ///         <see> exists</see>
        public static bool ShowDialog(string name) {
            return (bool) staticInterceptor.Invoke("showDialog$", "showDialog(const QString&)", typeof(bool), typeof(string), name);
        }
        protected new IKConfigDialogSignals Emit {
            get { return (IKConfigDialogSignals) Q_EMIT; }
        }
    }

    public interface IKConfigDialogSignals : IKPageDialogSignals {
        /// <remarks>
        ///  A widget in the dialog was modified.
        ///    </remarks>        <short>    A widget in the dialog was modified.</short>
        [Q_SIGNAL("void widgetModified()")]
        void WidgetModified();
        /// <remarks>
        ///  One or more of the settings have been permanently changed such as if
        ///  the user clicked on the Apply or Ok button.
        /// <param> name="dialogName" the name of the dialog.
        ///    </param></remarks>        <short>    One or more of the settings have been permanently changed such as if  the user clicked on the Apply or Ok button.</short>
        [Q_SIGNAL("void settingsChanged(QString)")]
        void SettingsChanged(string dialogName);
    }
}
