//
//     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 KAction : QWidgetAction
{
%TypeHeaderCode
#include <kaction.h>
%End



public:
    enum ShortcutType
    {
        ActiveShortcut,
        DefaultShortcut
    };

    typedef QFlags<KAction::ShortcutType> ShortcutTypes;


    enum GlobalShortcutLoading
    {
        Autoloading,
        NoAutoloading
    };

    explicit                KAction (QObject* parent /TransferThis/);
                            KAction (const QString& text, QObject* parent /TransferThis/);
                            KAction (const KIcon& icon, const QString& text, QObject* parent /TransferThis/);
    void                    setHelpText (const QString& text);
    KShortcut               shortcut (KAction::ShortcutTypes types = KAction::ActiveShortcut) const;
    void                    setShortcut (const KShortcut& shortcut, KAction::ShortcutTypes type = KAction::ShortcutTypes(KAction::ActiveShortcut|KAction::DefaultShortcut));
    void                    setShortcut (const QKeySequence& shortcut, KAction::ShortcutTypes type = KAction::ShortcutTypes(KAction::ActiveShortcut|KAction::DefaultShortcut));
    void                    setShortcuts (const QList<QKeySequence>& shortcuts, KAction::ShortcutTypes type = KAction::ShortcutTypes(KAction::ActiveShortcut|KAction::DefaultShortcut));
    bool                    isShortcutConfigurable () const;
    void                    setShortcutConfigurable (bool configurable);
    const KShortcut&        globalShortcut (KAction::ShortcutTypes type = KAction::ActiveShortcut) const;
    void                    setGlobalShortcut (const KShortcut& shortcut, KAction::ShortcutTypes type = KAction::ShortcutTypes(KAction::ActiveShortcut|KAction::DefaultShortcut), KAction::GlobalShortcutLoading loading = KAction::Autoloading);
    bool                    globalShortcutAllowed () const;
    void                    setGlobalShortcutAllowed (bool allowed, KAction::GlobalShortcutLoading loading = KAction::Autoloading);
    bool                    isGlobalShortcutEnabled () const;
    void                    forgetGlobalShortcut ();
    KShapeGesture           shapeGesture (KAction::ShortcutTypes type = KAction::ActiveShortcut) const;
    KRockerGesture          rockerGesture (KAction::ShortcutTypes type = KAction::ActiveShortcut) const;
    void                    setShapeGesture (const KShapeGesture& gest, KAction::ShortcutTypes type = KAction::ShortcutTypes(KAction::ActiveShortcut|KAction::DefaultShortcut));
    void                    setRockerGesture (const KRockerGesture& gest, KAction::ShortcutTypes type = KAction::ShortcutTypes(KAction::ActiveShortcut|KAction::DefaultShortcut));
    bool                    event (QEvent*);

signals:
    void                    triggered (Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
    void                    globalShortcutChanged (const QKeySequence&);
public:
    ~KAction ();
    KAuth::Action*          authAction () const;
    void                    setAuthAction (KAuth::Action* action);
    void                    setAuthAction (const QString& actionName);
signals:
    void                    authorized (KAuth::Action* action);
};
// KAction


