Browse Source

Merge pull request #158 from FenrirWolf/swkbd-initial-text

testing/vulkan-ci
Meziu 10 months ago committed by GitHub
parent
commit
4dbe83e26d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 19
      ctru-rs/src/applets/swkbd.rs

19
ctru-rs/src/applets/swkbd.rs

@ -22,6 +22,7 @@ pub struct SoftwareKeyboard {
state: Box<SwkbdState>, state: Box<SwkbdState>,
callback: Option<Box<CallbackFunction>>, callback: Option<Box<CallbackFunction>>,
error_message: Option<CString>, error_message: Option<CString>,
initial_text: Option<CString>,
} }
/// Configuration structure to setup the Parental Lock applet. /// Configuration structure to setup the Parental Lock applet.
@ -233,6 +234,7 @@ impl SoftwareKeyboard {
state, state,
callback: None, callback: None,
error_message: None, error_message: None,
initial_text: None,
} }
} }
} }
@ -497,14 +499,23 @@ impl SoftwareKeyboard {
/// use ctru::applets::swkbd::SoftwareKeyboard; /// use ctru::applets::swkbd::SoftwareKeyboard;
/// let mut keyboard = SoftwareKeyboard::default(); /// let mut keyboard = SoftwareKeyboard::default();
/// ///
/// keyboard.set_initial_text("Write here what you like!"); /// keyboard.set_initial_text(Some("Write here what you like!"));
/// # /// #
/// # } /// # }
#[doc(alias = "swkbdSetInitialText")] #[doc(alias = "swkbdSetInitialText")]
pub fn set_initial_text(&mut self, text: &str) { pub fn set_initial_text(&mut self, text: Option<&str>) {
if let Some(text) = text {
let initial_text = CString::new(text).unwrap();
unsafe { unsafe {
let nul_terminated: String = text.chars().chain(once('\0')).collect(); ctru_sys::swkbdSetInitialText(self.state.as_mut(), initial_text.as_ptr());
ctru_sys::swkbdSetInitialText(self.state.as_mut(), nul_terminated.as_ptr()); }
self.initial_text = Some(initial_text);
} else {
unsafe { ctru_sys::swkbdSetInitialText(self.state.as_mut(), std::ptr::null()) };
self.initial_text = None;
} }
} }

Loading…
Cancel
Save