summaryrefslogtreecommitdiff
path: root/src/devices/VirtualPointer.hpp
blob: 9eacbd5f8a60178912f97a6b751a0cd6a5f9ce2d (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
39
#pragma once

#include "IPointer.hpp"

class CVirtualPointerV1Resource;

class CVirtualPointer : public IPointer {
  public:
    static SP<CVirtualPointer>       create(SP<CVirtualPointerV1Resource> resource);

    virtual bool                     isVirtual();
    virtual SP<Aquamarine::IPointer> aq();

  private:
    CVirtualPointer(SP<CVirtualPointerV1Resource>);

    WP<CVirtualPointerV1Resource> m_pointer;

    struct {
        CHyprSignalListener destroy;

        CHyprSignalListener motion;
        CHyprSignalListener motionAbsolute;
        CHyprSignalListener button;
        CHyprSignalListener axis;
        CHyprSignalListener frame;

        CHyprSignalListener swipeBegin;
        CHyprSignalListener swipeEnd;
        CHyprSignalListener swipeUpdate;

        CHyprSignalListener pinchBegin;
        CHyprSignalListener pinchEnd;
        CHyprSignalListener pinchUpdate;

        CHyprSignalListener holdBegin;
        CHyprSignalListener holdEnd;
    } m_listeners;
};