diff --git a/libui/src/controls/textentry.rs b/libui/src/controls/textentry.rs index 8daa276..34b41dc 100644 --- a/libui/src/controls/textentry.rs +++ b/libui/src/controls/textentry.rs @@ -16,6 +16,8 @@ pub trait TextEntry { fn value(&self) -> String; fn set_value(&mut self, value: &str); fn on_changed<'ctx, F: FnMut(String) + 'static>(&mut self, callback: F); + fn readonly(&self) -> bool; + fn set_readonly(&mut self, readonly: bool); } define_control! { @@ -74,14 +76,6 @@ impl MultilineEntry { let cstring = to_toolkit_string(value); unsafe { libui_ffi::uiMultilineEntryAppend(self.uiMultilineEntry, cstring.as_ptr()) } } - - pub fn readonly(&self) -> bool { - unsafe { libui_ffi::uiMultilineEntryReadOnly(self.uiMultilineEntry) != 0 } - } - - pub fn set_readonly(&mut self, readonly: bool) { - unsafe { libui_ffi::uiMultilineEntrySetReadOnly(self.uiMultilineEntry, readonly as c_int) } - } } impl TextEntry for Entry { @@ -112,6 +106,14 @@ impl TextEntry for Entry { libui_ffi::uiEntryOnChanged(self.uiEntry, Some(c_callback::), to_heap_ptr(callback)); } } + + fn readonly(&self) -> bool { + unsafe { libui_ffi::uiEntryReadOnly(self.uiEntry) != 0 } + } + + fn set_readonly(&mut self, readonly: bool) { + unsafe { libui_ffi::uiEntrySetReadOnly(self.uiEntry, readonly as c_int) } + } } impl TextEntry for PasswordEntry { @@ -146,6 +148,14 @@ impl TextEntry for PasswordEntry { } } } + + fn readonly(&self) -> bool { + unsafe { libui_ffi::uiEntryReadOnly(self.uiEntry) != 0 } + } + + fn set_readonly(&mut self, readonly: bool) { + unsafe { libui_ffi::uiEntrySetReadOnly(self.uiEntry, readonly as c_int) } + } } impl TextEntry for SearchEntry { @@ -177,6 +187,14 @@ impl TextEntry for SearchEntry { libui_ffi::uiEntryOnChanged(self.uiEntry, Some(c_callback::), to_heap_ptr(callback)); } } + + fn readonly(&self) -> bool { + unsafe { libui_ffi::uiEntryReadOnly(self.uiEntry) != 0 } + } + + fn set_readonly(&mut self, readonly: bool) { + unsafe { libui_ffi::uiEntrySetReadOnly(self.uiEntry, readonly as c_int) } + } } impl TextEntry for MultilineEntry { @@ -211,4 +229,12 @@ impl TextEntry for MultilineEntry { ); } } + + fn readonly(&self) -> bool { + unsafe { libui_ffi::uiMultilineEntryReadOnly(self.uiMultilineEntry) != 0 } + } + + fn set_readonly(&mut self, readonly: bool) { + unsafe { libui_ffi::uiMultilineEntrySetReadOnly(self.uiMultilineEntry, readonly as c_int) } + } }