aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/devices/Mouse.hpp
blob: 2b51fbe945b40c5ae8eb78189652df1cb389b5d8 (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
#pragma once

#include "IPointer.hpp"

class CMouse : public IPointer {
  public:
    static SP<CMouse>                create(SP<Aquamarine::IPointer> mouse);

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

  private:
    CMouse(SP<Aquamarine::IPointer> mouse);

    WP<Aquamarine::IPointer> mouse;

    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;
    } listeners;
};