layer_shika_domain/value_objects/
popup_position.rs1use crate::dimensions::LogicalRect;
2
3#[derive(Debug, Clone)]
4pub enum PopupPosition {
5 Absolute { x: f32, y: f32 },
7
8 Cursor { offset: Offset },
10
11 Element {
13 rect: LogicalRect,
14 anchor: AnchorPoint,
15 alignment: Alignment,
16 },
17
18 RelativeToParent {
20 anchor: AnchorPoint,
21 alignment: Alignment,
22 offset: Offset,
23 },
24
25 Centered { offset: Offset },
27}
28
29#[derive(Debug, Clone, Copy, PartialEq, Eq)]
31pub enum AnchorPoint {
32 TopLeft,
33 TopCenter,
34 TopRight,
35 CenterLeft,
36 Center,
37 CenterRight,
38 BottomLeft,
39 BottomCenter,
40 BottomRight,
41}
42
43#[derive(Debug, Clone, Copy, PartialEq, Eq)]
45pub enum Alignment {
46 Start,
48 Center,
50 End,
52}
53
54#[derive(Debug, Clone, Copy, Default, PartialEq)]
55pub struct Offset {
56 pub x: f32,
57 pub y: f32,
58}