Skip to content

Commit

Permalink
Merge pull request #158 from FenrirWolf/swkbd-initial-text
Browse files Browse the repository at this point in the history
  • Loading branch information
Meziu authored Feb 16, 2024
2 parents ae77de4 + 9eea3f0 commit 4dbe83e
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions ctru-rs/src/applets/swkbd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ pub struct SoftwareKeyboard {
state: Box<SwkbdState>,
callback: Option<Box<CallbackFunction>>,
error_message: Option<CString>,
initial_text: Option<CString>,
}

/// Configuration structure to setup the Parental Lock applet.
Expand Down Expand Up @@ -233,6 +234,7 @@ impl SoftwareKeyboard {
state,
callback: None,
error_message: None,
initial_text: None,
}
}
}
Expand Down Expand Up @@ -497,14 +499,23 @@ impl SoftwareKeyboard {
/// use ctru::applets::swkbd::SoftwareKeyboard;
/// 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")]
pub fn set_initial_text(&mut self, text: &str) {
unsafe {
let nul_terminated: String = text.chars().chain(once('\0')).collect();
ctru_sys::swkbdSetInitialText(self.state.as_mut(), nul_terminated.as_ptr());
pub fn set_initial_text(&mut self, text: Option<&str>) {
if let Some(text) = text {
let initial_text = CString::new(text).unwrap();

unsafe {
ctru_sys::swkbdSetInitialText(self.state.as_mut(), initial_text.as_ptr());
}

self.initial_text = Some(initial_text);
} else {
unsafe { ctru_sys::swkbdSetInitialText(self.state.as_mut(), std::ptr::null()) };

self.initial_text = None;
}
}

Expand Down

0 comments on commit 4dbe83e

Please sign in to comment.