dear_imnodes/
types.rs

1#![allow(clippy::unnecessary_cast)]
2use crate::sys;
3
4#[repr(i32)]
5#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
6pub enum PinShape {
7    Circle = sys::ImNodesPinShape_Circle as i32,
8    CircleFilled = sys::ImNodesPinShape_CircleFilled as i32,
9    Triangle = sys::ImNodesPinShape_Triangle as i32,
10    TriangleFilled = sys::ImNodesPinShape_TriangleFilled as i32,
11    Quad = sys::ImNodesPinShape_Quad as i32,
12    QuadFilled = sys::ImNodesPinShape_QuadFilled as i32,
13}
14
15bitflags::bitflags! {
16    #[derive(Default)]
17    pub struct AttributeFlags: i32 {
18        const NONE = sys::ImNodesAttributeFlags_None as i32;
19        const ENABLE_LINK_DETACH_WITH_DRAG_CLICK = sys::ImNodesAttributeFlags_EnableLinkDetachWithDragClick as i32;
20        const ENABLE_LINK_CREATION_ON_SNAP = sys::ImNodesAttributeFlags_EnableLinkCreationOnSnap as i32;
21    }
22}
23
24bitflags::bitflags! {
25    #[derive(Default)]
26    pub struct StyleFlags: i32 {
27        const NONE = sys::ImNodesStyleFlags_None as i32;
28        const NODE_OUTLINE = sys::ImNodesStyleFlags_NodeOutline as i32;
29        const GRID_LINES = sys::ImNodesStyleFlags_GridLines as i32;
30        const GRID_LINES_PRIMARY = sys::ImNodesStyleFlags_GridLinesPrimary as i32;
31        const GRID_SNAPPING = sys::ImNodesStyleFlags_GridSnapping as i32;
32    }
33}
34
35#[repr(u32)]
36#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
37pub enum MiniMapLocation {
38    BottomLeft = sys::ImNodesMiniMapLocation_BottomLeft as u32,
39    BottomRight = sys::ImNodesMiniMapLocation_BottomRight as u32,
40    TopLeft = sys::ImNodesMiniMapLocation_TopLeft as u32,
41    TopRight = sys::ImNodesMiniMapLocation_TopRight as u32,
42}
43
44/// Result of a link creation interaction
45#[derive(Copy, Clone, Debug)]
46pub struct LinkCreated {
47    pub start_attr: i32,
48    pub end_attr: i32,
49    pub from_snap: bool,
50}
51
52#[derive(Copy, Clone, Debug)]
53pub struct LinkCreatedEx {
54    pub start_node: i32,
55    pub start_attr: i32,
56    pub end_node: i32,
57    pub end_attr: i32,
58    pub from_snap: bool,
59}
60#[repr(i32)]
61#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
62pub enum StyleVar {
63    GridSpacing = sys::ImNodesStyleVar_GridSpacing as i32,
64    NodeCornerRounding = sys::ImNodesStyleVar_NodeCornerRounding as i32,
65    NodePadding = sys::ImNodesStyleVar_NodePadding as i32,
66    NodeBorderThickness = sys::ImNodesStyleVar_NodeBorderThickness as i32,
67    LinkThickness = sys::ImNodesStyleVar_LinkThickness as i32,
68    LinkLineSegmentsPerLength = sys::ImNodesStyleVar_LinkLineSegmentsPerLength as i32,
69    LinkHoverDistance = sys::ImNodesStyleVar_LinkHoverDistance as i32,
70    PinCircleRadius = sys::ImNodesStyleVar_PinCircleRadius as i32,
71    PinQuadSideLength = sys::ImNodesStyleVar_PinQuadSideLength as i32,
72    PinTriangleSideLength = sys::ImNodesStyleVar_PinTriangleSideLength as i32,
73    PinLineThickness = sys::ImNodesStyleVar_PinLineThickness as i32,
74    PinHoverRadius = sys::ImNodesStyleVar_PinHoverRadius as i32,
75    PinOffset = sys::ImNodesStyleVar_PinOffset as i32,
76    MiniMapPadding = sys::ImNodesStyleVar_MiniMapPadding as i32,
77    MiniMapOffset = sys::ImNodesStyleVar_MiniMapOffset as i32,
78}