dear_imgui_rs/input/
text_flags.rs1use crate::sys;
2use bitflags::bitflags;
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6macro_rules! impl_input_flag_raw {
7 ($ty:ident) => {
8 impl $ty {
9 #[inline]
10 pub(crate) fn raw(self) -> sys::ImGuiInputTextFlags {
11 self.bits() as sys::ImGuiInputTextFlags
12 }
13 }
14
15 #[cfg(feature = "serde")]
16 impl Serialize for $ty {
17 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
18 where
19 S: serde::Serializer,
20 {
21 serializer.serialize_i32(self.bits())
22 }
23 }
24
25 #[cfg(feature = "serde")]
26 impl<'de> Deserialize<'de> for $ty {
27 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
28 where
29 D: serde::Deserializer<'de>,
30 {
31 let bits = i32::deserialize(deserializer)?;
32 Ok(Self::from_bits_retain(bits))
33 }
34 }
35 };
36}
37
38bitflags! {
39 #[repr(transparent)]
42 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
43 pub struct InputTextFlags: i32 {
44 const NONE = sys::ImGuiInputTextFlags_None as i32;
46 const CHARS_DECIMAL = sys::ImGuiInputTextFlags_CharsDecimal as i32;
48 const CHARS_HEXADECIMAL = sys::ImGuiInputTextFlags_CharsHexadecimal as i32;
50 const CHARS_SCIENTIFIC = sys::ImGuiInputTextFlags_CharsScientific as i32;
52 const CHARS_UPPERCASE = sys::ImGuiInputTextFlags_CharsUppercase as i32;
54 const CHARS_NO_BLANK = sys::ImGuiInputTextFlags_CharsNoBlank as i32;
56
57 const ALLOW_TAB_INPUT = sys::ImGuiInputTextFlags_AllowTabInput as i32;
59 const ENTER_RETURNS_TRUE = sys::ImGuiInputTextFlags_EnterReturnsTrue as i32;
61 const ESCAPE_CLEARS_ALL = sys::ImGuiInputTextFlags_EscapeClearsAll as i32;
63
64 const READ_ONLY = sys::ImGuiInputTextFlags_ReadOnly as i32;
66 const PASSWORD = sys::ImGuiInputTextFlags_Password as i32;
68 const ALWAYS_OVERWRITE = sys::ImGuiInputTextFlags_AlwaysOverwrite as i32;
70 const AUTO_SELECT_ALL = sys::ImGuiInputTextFlags_AutoSelectAll as i32;
72 const NO_HORIZONTAL_SCROLL = sys::ImGuiInputTextFlags_NoHorizontalScroll as i32;
74 const NO_UNDO_REDO = sys::ImGuiInputTextFlags_NoUndoRedo as i32;
76 const ELIDE_LEFT = sys::ImGuiInputTextFlags_ElideLeft as i32;
78
79 const CALLBACK_COMPLETION = sys::ImGuiInputTextFlags_CallbackCompletion as i32;
81 const CALLBACK_HISTORY = sys::ImGuiInputTextFlags_CallbackHistory as i32;
83 const CALLBACK_ALWAYS = sys::ImGuiInputTextFlags_CallbackAlways as i32;
85 const CALLBACK_CHAR_FILTER = sys::ImGuiInputTextFlags_CallbackCharFilter as i32;
87 const CALLBACK_EDIT = sys::ImGuiInputTextFlags_CallbackEdit as i32;
89 }
90}
91
92bitflags! {
93 #[repr(transparent)]
95 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
96 pub struct InputTextMultilineFlags: i32 {
97 const NONE = sys::ImGuiInputTextFlags_None as i32;
99 const CHARS_DECIMAL = sys::ImGuiInputTextFlags_CharsDecimal as i32;
101 const CHARS_HEXADECIMAL = sys::ImGuiInputTextFlags_CharsHexadecimal as i32;
103 const CHARS_SCIENTIFIC = sys::ImGuiInputTextFlags_CharsScientific as i32;
105 const CHARS_UPPERCASE = sys::ImGuiInputTextFlags_CharsUppercase as i32;
107 const CHARS_NO_BLANK = sys::ImGuiInputTextFlags_CharsNoBlank as i32;
109
110 const ALLOW_TAB_INPUT = sys::ImGuiInputTextFlags_AllowTabInput as i32;
112 const ENTER_RETURNS_TRUE = sys::ImGuiInputTextFlags_EnterReturnsTrue as i32;
114 const ESCAPE_CLEARS_ALL = sys::ImGuiInputTextFlags_EscapeClearsAll as i32;
116 const CTRL_ENTER_FOR_NEW_LINE = sys::ImGuiInputTextFlags_CtrlEnterForNewLine as i32;
118
119 const READ_ONLY = sys::ImGuiInputTextFlags_ReadOnly as i32;
121 const ALWAYS_OVERWRITE = sys::ImGuiInputTextFlags_AlwaysOverwrite as i32;
123 const AUTO_SELECT_ALL = sys::ImGuiInputTextFlags_AutoSelectAll as i32;
125 const NO_HORIZONTAL_SCROLL = sys::ImGuiInputTextFlags_NoHorizontalScroll as i32;
127 const NO_UNDO_REDO = sys::ImGuiInputTextFlags_NoUndoRedo as i32;
129 const WORD_WRAP = sys::ImGuiInputTextFlags_WordWrap as i32;
131
132 const CALLBACK_ALWAYS = sys::ImGuiInputTextFlags_CallbackAlways as i32;
134 const CALLBACK_CHAR_FILTER = sys::ImGuiInputTextFlags_CallbackCharFilter as i32;
136 const CALLBACK_EDIT = sys::ImGuiInputTextFlags_CallbackEdit as i32;
138 }
139}
140
141bitflags! {
142 #[repr(transparent)]
145 #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
146 pub struct InputScalarFlags: i32 {
147 const NONE = sys::ImGuiInputTextFlags_None as i32;
149 const CHARS_DECIMAL = sys::ImGuiInputTextFlags_CharsDecimal as i32;
151 const CHARS_HEXADECIMAL = sys::ImGuiInputTextFlags_CharsHexadecimal as i32;
153 const CHARS_SCIENTIFIC = sys::ImGuiInputTextFlags_CharsScientific as i32;
155 const CHARS_UPPERCASE = sys::ImGuiInputTextFlags_CharsUppercase as i32;
157 const CHARS_NO_BLANK = sys::ImGuiInputTextFlags_CharsNoBlank as i32;
159
160 const ESCAPE_CLEARS_ALL = sys::ImGuiInputTextFlags_EscapeClearsAll as i32;
162
163 const READ_ONLY = sys::ImGuiInputTextFlags_ReadOnly as i32;
165 const ALWAYS_OVERWRITE = sys::ImGuiInputTextFlags_AlwaysOverwrite as i32;
167 const AUTO_SELECT_ALL = sys::ImGuiInputTextFlags_AutoSelectAll as i32;
169 const PARSE_EMPTY_REF_VAL = sys::ImGuiInputTextFlags_ParseEmptyRefVal as i32;
171 const DISPLAY_EMPTY_REF_VAL = sys::ImGuiInputTextFlags_DisplayEmptyRefVal as i32;
173 const NO_HORIZONTAL_SCROLL = sys::ImGuiInputTextFlags_NoHorizontalScroll as i32;
175 const NO_UNDO_REDO = sys::ImGuiInputTextFlags_NoUndoRedo as i32;
177 }
178}
179
180impl_input_flag_raw!(InputTextFlags);
181impl_input_flag_raw!(InputTextMultilineFlags);
182impl_input_flag_raw!(InputScalarFlags);