1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 """Helper class to store and transfer mouse event details."""
23 """Helper class to store and transfer mouse event details."""
24
25 BUTTON_LEFT = 1
26 BUTTON_MIDDLE = 4
27 BUTTON_RIGHT = 2
28
29 - def __init__(self, evt=None, relativeToElement=None):
30 self._DELIM = ','
31 self._button = None
32 self._clientX = None
33 self._clientY = None
34 self._altKey = None
35 self._ctrlKey = None
36 self._metaKey = None
37 self._shiftKey = None
38 self._type = None
39 self._relativeX = -1
40 self._relativeY = -1
41
42 if evt is None:
43 pass
44 elif relativeToElement is None:
45 MouseEventDetails.__init__(self, evt, None)
46 else:
47 raise NotImplementedError
48
49
50
51
52 self._button = evt.getButton()
53 self._altKey = evt.getAltKey()
54 self._ctrlKey = evt.getCtrlKey()
55 self._metaKey = evt.getMetaKey()
56 self._shiftKey = evt.getShiftKey()
57 if relativeToElement is not None:
58 self._relativeX = self.getRelativeX(self._clientX,
59 relativeToElement)
60 self._relativeY = self.getRelativeY(self._clientY,
61 relativeToElement)
62
63
66
67
69 return (self._button + self._DELIM + self._clientX + self._DELIM
70 + self._clientY + self._DELIM
71 + str(self._altKey).lower() + self._DELIM
72 + str(self._ctrlKey).lower() + self._DELIM
73 + str(self._metaKey).lower() + self._DELIM
74 + str(self._shiftKey).lower() + self._DELIM
75 + self._type + self._DELIM
76 + self._relativeX + self._DELIM + self._relativeY)
77
78
79 @classmethod
81 instance = MouseEventDetails()
82 fields = serializedString.split(',')
83 instance._button = int(fields[0])
84 instance._clientX = int(fields[1])
85 instance._clientY = int(fields[2])
86 instance._altKey = (fields[3].lower() == 'true')
87 instance._ctrlKey = (fields[4].lower() == 'true')
88 instance._metaKey = (fields[5].lower() == 'true')
89 instance._shiftKey = (fields[6].lower() == 'true')
90 instance._type = int(fields[7])
91 instance._relativeX = int(fields[8])
92 instance._relativeY = int(fields[9])
93 return instance
94
95
104
105
113
114
122
123
126
127
129 return self._type == 2
130
131
134
135
138
139
142
143
146
147
150
151
154
155
157 return self._shiftKey
158