#ifndef TASKBARWINDOW_H
#define TASKBARWINDOW_H

#include "base/platformwindow.h"

namespace KWayland
{
namespace Client
{
class PlasmaShell;
class PlasmaShellSurface;
class Surface;
}
}
class QDBusInterface;
class TaskBarWindow : public PlatformWindow
{
    Q_OBJECT
public:
    explicit TaskBarWindow(QWindow *parent = nullptr);

    void moveEvent(QMoveEvent *ev) override;
    void show();
    void setTabletDesktopWindow(QWindow *window);

private Q_SLOTS:
    void updateGeometry();
    void onActiveChanged();
    void onShowingDesktopChanged(bool showing);
    void onEdgeGestureToggled(QString type, int fingers);
    void tabletModeChanged(bool tabletMode);

private:
    void initConnections();

private:
    QRect m_preGeometry;
    bool m_isTabletMode;
    bool m_isShowingTabletDesktop;
    QDBusInterface *m_statusMgrInterface;
    QWindow *m_desktopWindow = nullptr;
};

#endif // TASKBARWINDOW_H
