mod response;
mod sensitive;
mod widget;
use gtk::{gio::SimpleAction, glib::Uri};
use response::Response;
use sensitive::Sensitive;
use widget::Widget;
use adw::Clamp;
use std::sync::Arc;
pub struct Input {
widget: Arc<Widget>,
}
impl Input {
pub fn new_arc() -> Arc<Self> {
let widget = Widget::new_arc();
Arc::new(Self { widget })
}
pub fn unset(&self) {
self.widget.update(None);
}
pub fn set_new_response(
&self,
action_page_open: SimpleAction,
base: Uri,
title: Option<&str>,
size_limit: Option<usize>,
) {
self.widget.update(Some(
&Response::new_arc(action_page_open, base, title, size_limit).gobject(),
));
}
pub fn set_new_sensitive(
&self,
action_page_open: SimpleAction,
base: Uri,
title: Option<&str>,
max_length: Option<i32>,
) {
self.widget.update(Some(
&Sensitive::new_arc(action_page_open, base, title, max_length).gobject(),
));
}
pub fn gobject(&self) -> &Clamp {
&self.widget.gobject()
}
}