// Copyright 2009 Simon Edwards <simon@simonzone.com>

//                 Generated by twine2

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

// This program 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 Library General Public
// License along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

class KStatusNotifierItem : QObject
{
%TypeHeaderCode
#include <kstatusnotifieritem.h>
%End

public:
    enum ItemStatus
    {
        Passive,
        Active,
        NeedsAttention
    };
    enum ItemCategory
    {
        ApplicationStatus,
        Communications,
        SystemServices,
        Hardware,
        Reserved
    };
    explicit                KStatusNotifierItem (QObject* parent /TransferThis/ = 0);
    explicit                KStatusNotifierItem (const QString& id, QObject* parent /TransferThis/ = 0);
    ~KStatusNotifierItem ();
    QString                 id () const;
    void                    setCategory (const KStatusNotifierItem::ItemCategory category);
    KStatusNotifierItem::ItemCategory  category () const;
    void                    setTitle (const QString& title);
    QString                 title () const;
    void                    setStatus (const KStatusNotifierItem::ItemStatus status);
    KStatusNotifierItem::ItemStatus  status () const;
    void                    setIconByName (const QString& name);
    QString                 iconName () const;
    void                    setIconByPixmap (const QIcon& icon);
    QIcon                   iconPixmap () const;
    void                    setOverlayIconByName (const QString& name);
    QString                 overlayIconName () const;
    void                    setOverlayIconByPixmap (const QIcon& icon);
    QIcon                   overlayIconPixmap () const;
    void                    setAttentionIconByName (const QString& name);
    QString                 attentionIconName () const;
    void                    setAttentionIconByPixmap (const QIcon& icon);
    QIcon                   attentionIconPixmap () const;
    void                    setToolTip (const QString& iconName, const QString& title, const QString& subTitle);
    void                    setToolTip (const QIcon& icon, const QString& title, const QString& subTitle);
    void                    setToolTipIconByName (const QString& name);
    QString                 toolTipIconName () const;
    void                    setToolTipIconByPixmap (const QIcon& icon);
    QIcon                   toolTipIconPixmap () const;
    void                    setToolTipTitle (const QString& title);
    QString                 toolTipTitle () const;
    void                    setToolTipSubTitle (const QString& subTitle);
    QString                 toolTipSubTitle () const;
    void                    setContextMenu (KMenu* menu);
    KMenu*                  contextMenu () const;
    void                    setAssociatedWidget (QWidget* parent /Transfer/);
    QWidget*                associatedWidget () const;
    KActionCollection*      actionCollection () const;
    void                    setStandardActionsEnabled (bool enabled);
    bool                    standardActionsEnabled () const;
    void                    showMessage (const QString& title, const QString& message, const QString& icon, int timeout = 10000);
    virtual void            activate (const QPoint& pos = QPoint());
signals:
    void                    scrollRequested (int delta, Qt::Orientation orientation);
    void                    activateRequested (bool active, const QPoint& pos);
    void                    secondaryActivateRequested (const QPoint& pos);
protected:
    bool                    eventFilter (QObject* watched, QEvent* event);
public:
    void                    setAttentionMovieByName (const QString& name);
    QString                 attentionMovieName () const;
};
