#ifndef PQDESKTOPWIDGET
#define PQDESKTOPWIDGET

#include <QDesktopWidget>
#include "classes/pqwidget.h"

class PQDesktopWidget;
class PQDesktopWidget : public QDesktopWidget {
    Q_OBJECT
    PQ_WIDGET_EX(QDesktopWidget)

public:
    Q_INVOKABLE explicit PQDesktopWidget();
    virtual ~PQDesktopWidget();

    Q_INVOKABLE QRect availableGeometry(int screen = -1);
    Q_INVOKABLE QRect availableGeometry(const QWidget *widget);
    Q_INVOKABLE QRect availableGeometry(int xpos, int ypos);
    Q_INVOKABLE QRect screenGeometry(int screen = -1);
    Q_INVOKABLE QRect screenGeometry(const QWidget *widget);
    Q_INVOKABLE QRect screenGeometry(int xpos, int ypos);
    Q_INVOKABLE int	screenNumber(const QWidget *widget = 0);
    Q_INVOKABLE int	screenNumber(int xpos, int ypos);
    Q_INVOKABLE int	screenCount();

public Q_SLOTS:
    void resized_pslot(int screen);
    void screenCountChanged_pslot(int newCount);
    void workAreaResized_pslot(int screen);

    PQ_ON_SIGNAL_DECL_START
        PQ_ON_SIGNAL(resized_pslot(int));
        PQ_ON_SIGNAL(screenCountChanged_pslot(int));
        PQ_ON_SIGNAL(workAreaResized_pslot(int));
        PQWIDGET_ON_SIGNALS();
    PQ_ON_SIGNAL_DECL_END
};

#endif // PQDESKTOPWIDGET

