| 1 | // Copyright 2022 The AccessKit Authors. All rights reserved. |
| 2 | // Licensed under the Apache License, Version 2.0 (found in |
| 3 | // the LICENSE-APACHE file) or the MIT license (found in |
| 4 | // the LICENSE-MIT file), at your option. |
| 5 | |
| 6 | use serde::{Deserialize, Serialize}; |
| 7 | use zvariant::{OwnedValue, Type, Value}; |
| 8 | |
| 9 | #[derive ( |
| 10 | Clone, Copy, Debug, Default, PartialEq, Eq, Serialize, Deserialize, OwnedValue, Type, Value, |
| 11 | )] |
| 12 | pub struct Rect { |
| 13 | pub x: i32, |
| 14 | pub y: i32, |
| 15 | pub width: i32, |
| 16 | pub height: i32, |
| 17 | } |
| 18 | |
| 19 | impl Rect { |
| 20 | pub const INVALID: Rect = Rect { |
| 21 | x: -1, |
| 22 | y: -1, |
| 23 | width: -1, |
| 24 | height: -1, |
| 25 | }; |
| 26 | } |
| 27 | |
| 28 | impl From<accesskit::Rect> for Rect { |
| 29 | fn from(value: accesskit::Rect) -> Rect { |
| 30 | Rect { |
| 31 | x: value.x0 as i32, |
| 32 | y: value.y0 as i32, |
| 33 | width: value.width() as i32, |
| 34 | height: value.height() as i32, |
| 35 | } |
| 36 | } |
| 37 | } |
| 38 | |