summaryrefslogtreecommitdiff
path: root/examples/wayland/custom-shell/client-plugin/examplesurface.h
blob: e5d6fb92a8fad8633e2e0a885967442c7e5dd8c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

#ifndef EXAMPLESHELLSURFACE_H
#define EXAMPLESHELLSURFACE_H

#include <QtWaylandClient/private/qwaylandclientshellapi_p.h>
#include "qwayland-example-shell.h"

using namespace QtWaylandClient;

//! [ExampleShellSurface]
class ExampleShellSurface : public QWaylandShellSurface
        , public QtWayland::qt_example_shell_surface
//! [ExampleShellSurface]
{
public:
    ExampleShellSurface(struct ::qt_example_shell_surface *shell_surface, QWaylandWindow *window);
    ~ExampleShellSurface() override;

//! [virtuals]
    bool wantsDecorations() const override;
    void setTitle(const QString &) override;
    void requestWindowStates(Qt::WindowStates states) override;
    void applyConfigure() override;
//! [virtuals]

protected:
//! [events]
    void example_shell_surface_minimize(uint32_t minimized) override;
//! [events]

private:
    Qt::WindowStates m_pendingStates;
    bool m_stateChanged = false;
};

#endif // EXAMPLESHELLSURFACE_H