kdeconnect_proto/packet/
mousepad.rs1use serde::{Deserialize, Serialize};
3
4#[cfg(not(feature = "std"))]
5use alloc::string::String;
6
7#[derive(Serialize, Deserialize, Debug, Clone)]
11#[serde(rename_all = "camelCase")]
12pub struct MousepadEchoPacket {
13 #[serde(skip_serializing_if = "Option::is_none")]
15 #[serde(default)]
16 pub key: Option<String>,
17
18 #[serde(skip_serializing_if = "Option::is_none")]
20 #[serde(default)]
21 pub special_key: Option<u8>,
22
23 #[serde(skip_serializing_if = "Option::is_none")]
25 #[serde(default)]
26 pub alt: Option<bool>,
27
28 #[serde(skip_serializing_if = "Option::is_none")]
30 #[serde(default)]
31 pub ctrl: Option<bool>,
32
33 #[serde(skip_serializing_if = "Option::is_none")]
35 #[serde(default)]
36 pub shift: Option<bool>,
37
38 #[serde(skip_serializing_if = "Option::is_none")]
40 #[serde(default)]
41 #[serde(rename = "super")]
42 pub super_: Option<bool>,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
46 #[serde(default)]
47 pub singleclick: Option<bool>,
48
49 #[serde(skip_serializing_if = "Option::is_none")]
51 #[serde(default)]
52 pub doubleclick: Option<bool>,
53
54 #[serde(skip_serializing_if = "Option::is_none")]
56 #[serde(default)]
57 pub middleclick: Option<bool>,
58
59 #[serde(skip_serializing_if = "Option::is_none")]
61 #[serde(default)]
62 pub rightclick: Option<bool>,
63
64 #[serde(skip_serializing_if = "Option::is_none")]
66 #[serde(default)]
67 pub singlehold: Option<bool>,
68
69 #[serde(skip_serializing_if = "Option::is_none")]
71 #[serde(default)]
72 pub singlerelease: Option<bool>,
73
74 #[serde(skip_serializing_if = "Option::is_none")]
76 #[serde(default)]
77 pub dx: Option<i64>,
78
79 #[serde(skip_serializing_if = "Option::is_none")]
81 #[serde(default)]
82 pub dy: Option<i64>,
83
84 #[serde(skip_serializing_if = "Option::is_none")]
86 #[serde(default)]
87 pub scroll: Option<bool>,
88
89 pub is_ack: bool,
91}
92
93#[derive(Serialize, Deserialize, Debug, Clone)]
97#[serde(rename_all = "camelCase")]
98pub struct MousepadKeyboardStatePacket {
99 pub state: bool,
101}
102
103#[derive(Serialize, Deserialize, Debug, Clone)]
107#[serde(rename_all = "camelCase")]
108pub struct MousepadRequestPacket {
109 #[serde(skip_serializing_if = "Option::is_none")]
111 #[serde(default)]
112 pub key: Option<String>,
113
114 #[serde(skip_serializing_if = "Option::is_none")]
116 #[serde(default)]
117 pub special_key: Option<u8>,
118
119 #[serde(skip_serializing_if = "Option::is_none")]
121 #[serde(default)]
122 pub alt: Option<bool>,
123
124 #[serde(skip_serializing_if = "Option::is_none")]
126 #[serde(default)]
127 pub ctrl: Option<bool>,
128
129 #[serde(skip_serializing_if = "Option::is_none")]
131 #[serde(default)]
132 pub shift: Option<bool>,
133
134 #[serde(skip_serializing_if = "Option::is_none")]
136 #[serde(default)]
137 #[serde(rename = "super")]
138 pub super_: Option<bool>,
139
140 #[serde(skip_serializing_if = "Option::is_none")]
142 #[serde(default)]
143 pub singleclick: Option<bool>,
144
145 #[serde(skip_serializing_if = "Option::is_none")]
147 #[serde(default)]
148 pub doubleclick: Option<bool>,
149
150 #[serde(skip_serializing_if = "Option::is_none")]
152 #[serde(default)]
153 pub middleclick: Option<bool>,
154
155 #[serde(skip_serializing_if = "Option::is_none")]
157 #[serde(default)]
158 pub rightclick: Option<bool>,
159
160 #[serde(skip_serializing_if = "Option::is_none")]
162 #[serde(default)]
163 pub singlehold: Option<bool>,
164
165 #[serde(skip_serializing_if = "Option::is_none")]
167 #[serde(default)]
168 pub singlerelease: Option<bool>,
169
170 #[serde(skip_serializing_if = "Option::is_none")]
172 #[serde(default)]
173 pub dx: Option<i64>,
174
175 #[serde(skip_serializing_if = "Option::is_none")]
177 #[serde(default)]
178 pub dy: Option<i64>,
179
180 #[serde(skip_serializing_if = "Option::is_none")]
182 #[serde(default)]
183 pub scroll: Option<bool>,
184
185 #[serde(skip_serializing_if = "Option::is_none")]
187 #[serde(default)]
188 pub send_ack: Option<bool>,
189}