use super::super::validation::validate_input_scalar_flags;
use crate::ui::Ui;
use crate::{InputScalarFlags, sys};
#[must_use]
pub struct InputInt2<'ui, 'p, L> {
label: L,
value: &'p mut [i32; 2],
flags: InputScalarFlags,
ui: &'ui Ui,
}
impl<'ui, 'p, L: AsRef<str>> InputInt2<'ui, 'p, L> {
#[doc(alias = "InputInt2")]
pub fn new(ui: &'ui Ui, label: L, value: &'p mut [i32; 2]) -> Self {
InputInt2 {
label,
value,
flags: InputScalarFlags::empty(),
ui,
}
}
#[inline]
pub fn flags(mut self, flags: InputScalarFlags) -> Self {
self.flags = flags;
self
}
pub fn build(self) -> bool {
validate_input_scalar_flags("InputInt2::build()", self.flags);
unsafe {
let label_cstr = self.ui.scratch_txt(self.label);
sys::igInputInt2(label_cstr, self.value.as_mut_ptr(), self.flags.raw())
}
}
}
#[must_use]
pub struct InputInt3<'ui, 'p, L> {
label: L,
value: &'p mut [i32; 3],
flags: InputScalarFlags,
ui: &'ui Ui,
}
impl<'ui, 'p, L: AsRef<str>> InputInt3<'ui, 'p, L> {
#[doc(alias = "InputInt3")]
pub fn new(ui: &'ui Ui, label: L, value: &'p mut [i32; 3]) -> Self {
InputInt3 {
label,
value,
flags: InputScalarFlags::empty(),
ui,
}
}
#[inline]
pub fn flags(mut self, flags: InputScalarFlags) -> Self {
self.flags = flags;
self
}
pub fn build(self) -> bool {
validate_input_scalar_flags("InputInt3::build()", self.flags);
unsafe {
let label_cstr = self.ui.scratch_txt(self.label);
sys::igInputInt3(label_cstr, self.value.as_mut_ptr(), self.flags.raw())
}
}
}
#[must_use]
pub struct InputInt4<'ui, 'p, L> {
label: L,
value: &'p mut [i32; 4],
flags: InputScalarFlags,
ui: &'ui Ui,
}
impl<'ui, 'p, L: AsRef<str>> InputInt4<'ui, 'p, L> {
#[doc(alias = "InputInt4")]
pub fn new(ui: &'ui Ui, label: L, value: &'p mut [i32; 4]) -> Self {
InputInt4 {
label,
value,
flags: InputScalarFlags::empty(),
ui,
}
}
#[inline]
pub fn flags(mut self, flags: InputScalarFlags) -> Self {
self.flags = flags;
self
}
pub fn build(self) -> bool {
validate_input_scalar_flags("InputInt4::build()", self.flags);
unsafe {
let label_cstr = self.ui.scratch_txt(self.label);
sys::igInputInt4(label_cstr, self.value.as_mut_ptr(), self.flags.raw())
}
}
}