//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.



class KDialog : QDialog
{
%TypeHeaderCode
#include <kdialog.h>
%End


public:

    enum ButtonCode
    {
        None,
        Help,
        Default,
        Ok,
        Apply,
        Try,
        Cancel,
        Close,
        No,
        Yes,
        Reset,
        Details,
        User1,
        User2,
        User3,
        NoDefault
    };

    typedef QFlags<KDialog::ButtonCode> ButtonCodes;


    enum ButtonPopupMode
    {
        InstantPopup,
        DelayedPopup
    };

    typedef QFlags<KDialog::ButtonPopupMode> ButtonPopupModes;

    explicit                KDialog (QWidget* parent /TransferThis/ = 0, Qt::WFlags flags = 0);
    void                    setButtons (KDialog::ButtonCodes buttonMask);
    void                    setButtonsOrientation (Qt::Orientation orientation);
    void                    setEscapeButton (KDialog::ButtonCode id);
    void                    setDefaultButton (KDialog::ButtonCode id);
    KDialog::ButtonCode     defaultButton () const;
    void                    showButtonSeparator (bool state);
    void                    showButton (KDialog::ButtonCode id, bool state);
    void                    setButtonText (KDialog::ButtonCode id, const QString& text);
    QString                 buttonText (KDialog::ButtonCode id) const;
    void                    setButtonIcon (KDialog::ButtonCode id, const KIcon& icon);
    KIcon                   buttonIcon (KDialog::ButtonCode id) const;
    void                    setButtonToolTip (KDialog::ButtonCode id, const QString& text);
    QString                 buttonToolTip (KDialog::ButtonCode id) const;
    void                    setButtonWhatsThis (KDialog::ButtonCode id, const QString& text);
    QString                 buttonWhatsThis (KDialog::ButtonCode id) const;
    void                    setButtonGuiItem (KDialog::ButtonCode id, const KGuiItem& item);
    void                    setButtonMenu (KDialog::ButtonCode id, QMenu* menu, KDialog::ButtonPopupMode popupmode = KDialog::InstantPopup);
    void                    setButtonFocus (KDialog::ButtonCode id);
    void                    setInitialSize (const QSize& size);
    void                    incrementInitialSize (const QSize& size);
    void                    restoreDialogSize (const KConfigGroup& config);
    void                    saveDialogSize (KConfigGroup& config, KConfigBase::WriteConfigFlags options = KConfigGroup::Normal) const;
    QString                 helpLinkText () const;
    bool                    isButtonEnabled (KDialog::ButtonCode id) const;
    KPushButton*            button (KDialog::ButtonCode id) const;
    static int              marginHint ();
    static int              spacingHint ();
    static int              groupSpacingHint ();

    enum CaptionFlag
    {
        NoCaptionFlags,
        AppNameCaption,
        ModifiedCaption,
        HIGCompliantCaption
    };

    typedef QFlags<KDialog::CaptionFlag> CaptionFlags;

    static QString          makeStandardCaption (const QString& userCaption, QWidget* window = 0, KDialog::CaptionFlags flags = KDialog::HIGCompliantCaption);
    static void             resizeLayout (QWidget* widget, int margin, int spacing);
    static void             resizeLayout (QLayout* lay, int margin, int spacing);
    static void             centerOnScreen (QWidget* widget, int screen = -1);
    static bool             avoidArea (QWidget* widget, const QRect& area, int screen = -1);
    void                    setMainWidget (QWidget* widget);
    QWidget*                mainWidget ();
    virtual QSize           sizeHint () const;
    virtual QSize           minimumSizeHint () const;
    virtual void            setCaption (const QString& caption);
    virtual void            setCaption (const QString& caption, bool modified);
    virtual void            setPlainCaption (const QString& caption);
    void                    enableButton (KDialog::ButtonCode id, bool state);
    void                    enableButtonOk (bool state);
    void                    enableButtonApply (bool state);
    void                    enableButtonCancel (bool state);
    void                    enableLinkedHelp (bool state);
    void                    setHelpLinkText (const QString& text);
    void                    setHelp (const QString& anchor, const QString& appname = QString());
    bool                    isDetailsWidgetVisible () const;
    void                    setDetailsWidgetVisible (bool visible);
    void                    setDetailsWidget (QWidget* detailsWidget);
    void                    delayedDestruct ();

signals:
    void                    layoutHintChanged ();
    void                    helpClicked ();
    void                    defaultClicked ();
    void                    resetClicked ();
    void                    user3Clicked ();
    void                    user2Clicked ();
    void                    user1Clicked ();
    void                    applyClicked ();
    void                    tryClicked ();
    void                    okClicked ();
    void                    yesClicked ();
    void                    noClicked ();
    void                    cancelClicked ();
    void                    closeClicked ();
    void                    buttonClicked (KDialog::ButtonCode button);
    void                    hidden ();
    void                    finished ();
    void                    aboutToShowDetails ();

protected:
    virtual void            hideEvent (QHideEvent*);
    virtual void            closeEvent (QCloseEvent* e);
    virtual void            keyPressEvent (QKeyEvent*);
    virtual void            slotButtonClicked (int button);
    void                    updateGeometry ();
//ig                        KDialog (KDialogPrivate& dd, QWidget* parent /TransferThis/, Qt::WFlags flags = 0);

private:
                            KDialog (const KDialog&);
};   // KDialog


