Skip to main content

dear_implot/
flags.rs

1use crate::sys;
2
3bitflags::bitflags! {
4    /// Flags for ANY `PlotX` function. Used by setting `ImPlotSpec::Flags`.
5    ///
6    /// These flags can be composed with the plot-type-specific flags (e.g. `LineFlags`).
7    #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
8    pub struct ItemFlags: u32 {
9        const NONE = sys::ImPlotItemFlags_None as u32;
10        const NO_LEGEND = sys::ImPlotItemFlags_NoLegend as u32;
11        const NO_FIT = sys::ImPlotItemFlags_NoFit as u32;
12    }
13}
14
15bitflags::bitflags! {
16    /// Flags for heatmap plots
17    pub struct HeatmapFlags: u32 {
18        const NONE = sys::ImPlotHeatmapFlags_None as u32;
19        const COL_MAJOR = sys::ImPlotHeatmapFlags_ColMajor as u32;
20    }
21}
22
23bitflags::bitflags! {
24    /// Flags for histogram plots
25    pub struct HistogramFlags: u32 {
26        const NONE = sys::ImPlotHistogramFlags_None as u32;
27        const HORIZONTAL = sys::ImPlotHistogramFlags_Horizontal as u32;
28        const CUMULATIVE = sys::ImPlotHistogramFlags_Cumulative as u32;
29        const DENSITY = sys::ImPlotHistogramFlags_Density as u32;
30        const NO_OUTLIERS = sys::ImPlotHistogramFlags_NoOutliers as u32;
31        const COL_MAJOR = sys::ImPlotHistogramFlags_ColMajor as u32;
32    }
33}
34
35bitflags::bitflags! {
36    /// Flags for pie chart plots
37    pub struct PieChartFlags: u32 {
38        const NONE = sys::ImPlotPieChartFlags_None as u32;
39        const NORMALIZE = sys::ImPlotPieChartFlags_Normalize as u32;
40        const IGNORE_HIDDEN = sys::ImPlotPieChartFlags_IgnoreHidden as u32;
41        const EXPLODING = sys::ImPlotPieChartFlags_Exploding as u32;
42        const NO_SLICE_BORDER = sys::ImPlotPieChartFlags_NoSliceBorder as u32;
43    }
44}
45
46bitflags::bitflags! {
47    /// Flags for line plots
48    pub struct LineFlags: u32 {
49        const NONE = sys::ImPlotLineFlags_None as u32;
50        const SEGMENTS = sys::ImPlotLineFlags_Segments as u32;
51        const LOOP = sys::ImPlotLineFlags_Loop as u32;
52        const SKIP_NAN = sys::ImPlotLineFlags_SkipNaN as u32;
53        const NO_CLIP = sys::ImPlotLineFlags_NoClip as u32;
54        const SHADED = sys::ImPlotLineFlags_Shaded as u32;
55    }
56}
57
58bitflags::bitflags! {
59    /// Flags for polygon plots
60    pub struct PolygonFlags: u32 {
61        const NONE = sys::ImPlotPolygonFlags_None as u32;
62        const CONCAVE = sys::ImPlotPolygonFlags_Concave as u32;
63    }
64}
65
66bitflags::bitflags! {
67    /// Flags for scatter plots
68    pub struct ScatterFlags: u32 {
69        const NONE = sys::ImPlotScatterFlags_None as u32;
70        const NO_CLIP = sys::ImPlotScatterFlags_NoClip as u32;
71    }
72}
73
74bitflags::bitflags! {
75    /// Flags for bar plots
76    pub struct BarsFlags: u32 {
77        const NONE = sys::ImPlotBarsFlags_None as u32;
78        const HORIZONTAL = sys::ImPlotBarsFlags_Horizontal as u32;
79    }
80}
81
82bitflags::bitflags! {
83    /// Flags for shaded plots
84    pub struct ShadedFlags: u32 {
85        const NONE = sys::ImPlotShadedFlags_None as u32;
86    }
87}
88
89bitflags::bitflags! {
90    /// Flags for stem plots
91    pub struct StemsFlags: u32 {
92        const NONE = sys::ImPlotStemsFlags_None as u32;
93        const HORIZONTAL = sys::ImPlotStemsFlags_Horizontal as u32;
94    }
95}
96
97bitflags::bitflags! {
98    /// Flags for error bar plots
99    pub struct ErrorBarsFlags: u32 {
100        const NONE = sys::ImPlotErrorBarsFlags_None as u32;
101        const HORIZONTAL = sys::ImPlotErrorBarsFlags_Horizontal as u32;
102    }
103}
104
105bitflags::bitflags! {
106    /// Flags for stairs plots
107    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
108    pub struct StairsFlags: u32 {
109        const NONE = sys::ImPlotStairsFlags_None as u32;
110        const PRE_STEP = sys::ImPlotStairsFlags_PreStep as u32;
111        const SHADED = sys::ImPlotStairsFlags_Shaded as u32;
112    }
113}
114
115bitflags::bitflags! {
116    /// Flags for bar groups plots
117    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
118    pub struct BarGroupsFlags: u32 {
119        const NONE = sys::ImPlotBarGroupsFlags_None as u32;
120        const HORIZONTAL = sys::ImPlotBarGroupsFlags_Horizontal as u32;
121        const STACKED = sys::ImPlotBarGroupsFlags_Stacked as u32;
122    }
123}
124
125bitflags::bitflags! {
126    /// Flags for digital plots
127    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
128    pub struct DigitalFlags: u32 {
129        const NONE = sys::ImPlotDigitalFlags_None as u32;
130    }
131}
132
133bitflags::bitflags! {
134    /// Flags for text plots
135    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
136    pub struct TextFlags: u32 {
137        const NONE = sys::ImPlotTextFlags_None as u32;
138        const VERTICAL = sys::ImPlotTextFlags_Vertical as u32;
139    }
140}
141
142bitflags::bitflags! {
143    /// Flags for dummy plots
144    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
145    pub struct DummyFlags: u32 {
146        const NONE = sys::ImPlotDummyFlags_None as u32;
147    }
148}
149
150bitflags::bitflags! {
151    /// Flags for drag tools (points/lines)
152    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
153    pub struct DragToolFlags: u32 {
154        const NONE = sys::ImPlotDragToolFlags_None as u32;
155        const NO_CURSORS = sys::ImPlotDragToolFlags_NoCursors as u32;
156        const NO_FIT = sys::ImPlotDragToolFlags_NoFit as u32;
157        const NO_INPUTS = sys::ImPlotDragToolFlags_NoInputs as u32;
158        const DELAYED = sys::ImPlotDragToolFlags_Delayed as u32;
159    }
160}
161
162bitflags::bitflags! {
163    /// Flags for infinite lines plots
164    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
165    pub struct InfLinesFlags: u32 {
166        const NONE = sys::ImPlotInfLinesFlags_None as u32;
167        const HORIZONTAL = sys::ImPlotInfLinesFlags_Horizontal as u32;
168    }
169}
170
171bitflags::bitflags! {
172    /// Flags for image plots
173    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
174    pub struct ImageFlags: u32 {
175        const NONE = sys::ImPlotImageFlags_None as u32;
176    }
177}
178
179bitflags::bitflags! {
180    /// Axis flags matching ImPlotAxisFlags_ (see cimplot.h)
181    #[derive(Debug, Clone, Copy, PartialEq, Eq)]
182    pub struct AxisFlags: u32 {
183        const NONE           = sys::ImPlotAxisFlags_None as u32;
184        const NO_LABEL       = sys::ImPlotAxisFlags_NoLabel as u32;
185        const NO_GRID_LINES  = sys::ImPlotAxisFlags_NoGridLines as u32;
186        const NO_TICK_MARKS  = sys::ImPlotAxisFlags_NoTickMarks as u32;
187        const NO_TICK_LABELS = sys::ImPlotAxisFlags_NoTickLabels as u32;
188        const NO_INITIAL_FIT = sys::ImPlotAxisFlags_NoInitialFit as u32;
189        const NO_MENUS       = sys::ImPlotAxisFlags_NoMenus as u32;
190        const NO_SIDE_SWITCH = sys::ImPlotAxisFlags_NoSideSwitch as u32;
191        const NO_HIGHLIGHT   = sys::ImPlotAxisFlags_NoHighlight as u32;
192        const OPPOSITE       = sys::ImPlotAxisFlags_Opposite as u32;
193        const FOREGROUND     = sys::ImPlotAxisFlags_Foreground as u32;
194        const INVERT         = sys::ImPlotAxisFlags_Invert as u32;
195        const AUTO_FIT       = sys::ImPlotAxisFlags_AutoFit as u32;
196        const RANGE_FIT      = sys::ImPlotAxisFlags_RangeFit as u32;
197        const PAN_STRETCH    = sys::ImPlotAxisFlags_PanStretch as u32;
198        const LOCK_MIN       = sys::ImPlotAxisFlags_LockMin as u32;
199        const LOCK_MAX       = sys::ImPlotAxisFlags_LockMax as u32;
200    }
201}