pub struct CheckBox { /* private fields */ }Available on crate feature
winio only.Expand description
A simple check box.
Implementations§
Source§impl CheckBox
impl CheckBox
Sourcepub fn is_checked(&self) -> Result<bool, Error>
pub fn is_checked(&self) -> Result<bool, Error>
If the box is checked.
Examples found in repository?
examples/options/options.rs (line 110)
101 async fn update(
102 &mut self,
103 message: Self::Message,
104 sender: &ComponentSender<Self>,
105 ) -> Result<bool, Self::Error> {
106 // futures_util::join!(self.window.update());
107 Ok(match message {
108 MainMessage::Noop => false,
109 MainMessage::EnabledClick => {
110 let enabled = self.enabled.is_checked()?;
111 self.b.set_enabled(enabled);
112 self.e.set_enabled(enabled);
113 self.s.set_enabled(enabled);
114 false
115 }
116 MainMessage::OptionsPage(m) => {
117 tracing::debug!(?m, "Options page message");
118 match m {
119 OptionsPageMessage::Redraw => true,
120 OptionsPageMessage::Close => {
121 sender.output(());
122 false
123 }
124 OptionsPageMessage::Save(config, tx) => {
125 config.enabled = self.enabled.is_checked()?;
126 config.b = self.b.is_checked()?;
127 config.e = match self.e.selection()? {
128 Some(0) => Mode::A,
129 Some(1) => Mode::B,
130 _ => Default::default(),
131 };
132 config.s = self.s.text()?;
133 tx.send(config).unwrap();
134 false
135 }
136 }
137 }
138 })
139 }More examples
examples/test/widgets.rs (line 185)
176 async fn update(
177 &mut self,
178 message: Self::Message,
179 sender: &ComponentSender<Self>,
180 ) -> Result<bool, Self::Error> {
181 // futures_util::future::join(self.window.update(), self.canvas.update()).await;
182 Ok(match message {
183 MainMessage::Noop => false,
184 MainMessage::PasswordCheck => {
185 self.pentry.set_password(!self.pcheck.is_checked()?);
186 true
187 }
188 MainMessage::List(e) => {
189 self.pop_button.set_enabled(!self.list.is_empty());
190 self.combo
191 .emit(ComboBoxMessage::from_observable_vec_event(e))
192 .await?
193 }
194 MainMessage::Select => {
195 self.index = self.combo.selection()?;
196 false
197 }
198 MainMessage::Push => {
199 self.list.push(self.radio_group[self.rindex].text()?);
200 false
201 }
202 MainMessage::Pop => {
203 self.list.pop();
204 false
205 }
206 MainMessage::RSelect(i) => {
207 self.rindex = i;
208 false
209 }
210 MainMessage::Show => {
211 MessageBox::new()
212 .title("Show selected item")
213 .message(
214 self.index
215 .and_then(|index| self.list.get(index))
216 .map(|s| s.as_str())
217 .unwrap_or("No selection."),
218 )
219 .buttons(MessageBoxButton::Ok)
220 // https://github.com/compio-rs/winio/issues/105
221 .show(unsafe { BorrowedWindow::win32(self.window.as_container().as_win32()) })
222 .await;
223 false
224 }
225 MainMessage::OptionsPage(m) => {
226 tracing::debug!(?m, "Options page message");
227 match m {
228 OptionsPageMessage::Redraw => true,
229 OptionsPageMessage::Close => {
230 sender.output(());
231 false
232 }
233 OptionsPageMessage::Save(config, tx) => {
234 config.s = self.mltext.text()?;
235 tx.send(config).unwrap();
236 false
237 }
238 }
239 }
240 })
241 }Sourcepub fn set_checked(&mut self, v: bool) -> Result<(), Error>
pub fn set_checked(&mut self, v: bool) -> Result<(), Error>
Set the checked state.
Examples found in repository?
examples/options/options.rs (line 61)
35 async fn init(
36 mut init: Self::Init<'_>,
37 sender: &ComponentSender<Self>,
38 ) -> Result<Self, Self::Error> {
39 let mut window = init.window(sender).await?;
40 // window.set_size(Size::new(800.0, 600.0));
41
42 let mut enabled = Child::<CheckBox>::init(&window).await?;
43 enabled.set_text("Enable");
44
45 let mut b = Child::<CheckBox>::init(&window).await?;
46 b.set_text("Switch");
47
48 let mut e_label = Child::<Label>::init(&window).await?;
49 e_label.set_text("Mode:");
50 let mut e = Child::<ComboBox>::init(&window).await?;
51 e.insert(0, "A");
52 e.insert(1, "B");
53
54 let mut s_label = Child::<Label>::init(&window).await?;
55 s_label.set_text("Message:");
56 let mut s = Child::<Edit>::init(&window).await?;
57
58 HANDLER.with_app(|a| {
59 let config = a.config();
60
61 enabled.set_checked(config.enabled);
62 b.set_checked(config.b);
63
64 e.set_selection(match config.e {
65 Mode::A => 0,
66 Mode::B => 1,
67 });
68
69 s.set_text(&config.s);
70 });
71
72 sender.post(MainMessage::EnabledClick);
73
74 window.show();
75
76 Ok(Self {
77 window,
78 enabled,
79 b,
80 s_label,
81 s,
82 e_label,
83 e,
84 })
85 }More examples
examples/test/widgets.rs (line 91)
68 async fn init(
69 mut init: Self::Init<'_>,
70 sender: &ComponentSender<Self>,
71 ) -> Result<Self, Self::Error> {
72 // let mut window = Child::<Window>::init(init);
73 let mut window = init.window(sender).await?;
74 // window.set_text("Widgets example");
75 window.set_size(Size::new(800.0, 600.0));
76
77 let canvas = Child::<Canvas>::init(&window).await?;
78 let mut ulabel = Child::<Label>::init(&window).await?;
79 ulabel.set_text("Username:");
80 ulabel.set_halign(HAlign::Right);
81 let mut plabel = Child::<Label>::init(&window).await?;
82 plabel.set_text("Password:");
83 plabel.set_halign(HAlign::Right);
84 let mut uentry = Child::<Edit>::init(&window).await?;
85 uentry.set_text("AAA");
86 let mut pentry = Child::<Edit>::init(&window).await?;
87 pentry.set_text("123456");
88 pentry.set_password(true);
89 let mut pcheck = Child::<CheckBox>::init(&window).await?;
90 pcheck.set_text("Show");
91 pcheck.set_checked(false);
92 let combo = Child::<ComboBox>::init(&window).await?;
93 let mut list = Child::<ObservableVec<String>>::init(Vec::new())
94 .await
95 .unwrap();
96 // https://www.zhihu.com/question/23600507/answer/140640887
97 list.push("烫烫烫".to_string());
98 list.push("昍昍昍".to_string());
99 list.push("フフフフフフ".to_string());
100 list.push("쳌쳌쳌".to_string());
101 let mut r1 = Child::<RadioButton>::init(&window).await?;
102 r1.set_text("屯屯屯");
103 r1.set_checked(true);
104 let mut r2 = Child::<RadioButton>::init(&window).await?;
105 r2.set_text("锟斤拷");
106 let mut r3 = Child::<RadioButton>::init(&window).await?;
107 r3.set_text("╠╠╠");
108 // Initialize radio group with the radio buttons
109 let radio_group = Child::<RadioButtonGroup>::init(vec![r1, r2, r3]).await?;
110
111 let mut push_button = Child::<Button>::init(&window).await?;
112 push_button.set_text("Push");
113 let mut pop_button = Child::<Button>::init(&window).await?;
114 pop_button.set_text("Pop");
115 let mut show_button = Child::<Button>::init(&window).await?;
116 show_button.set_text("Show");
117 let mut progress = Child::<Progress>::init(&window).await?;
118 progress.set_indeterminate(true);
119 let mut mltext = Child::<TextBox>::init(&window).await?;
120 HANDLER.with_app(|a| mltext.set_text(&a.config().s));
121
122 window.show();
123
124 Ok(Self {
125 window,
126 ulabel,
127 plabel,
128 uentry,
129 pentry,
130 pcheck,
131 canvas,
132 combo,
133 list,
134 index: None,
135 radio_group,
136 rindex: 0,
137 push_button,
138 pop_button,
139 show_button,
140 progress,
141 mltext,
142 })
143 }Trait Implementations§
Source§impl AsWidget for CheckBox
impl AsWidget for CheckBox
Source§fn as_widget(&self) -> BorrowedWidget<'_>
fn as_widget(&self) -> BorrowedWidget<'_>
Get the widget handle.
Source§impl Component for CheckBox
impl Component for CheckBox
Source§type Event = CheckBoxEvent
type Event = CheckBoxEvent
The output event type to the parent.
Source§type Init<'a> = BorrowedContainer<'a>
type Init<'a> = BorrowedContainer<'a>
Initial parameter type.
Source§type Message = CheckBoxMessage
type Message = CheckBoxMessage
The input message type to update.
Source§async fn init(
init: <CheckBox as Component>::Init<'_>,
_sender: &ComponentSender<CheckBox>,
) -> Result<CheckBox, Error>
async fn init( init: <CheckBox as Component>::Init<'_>, _sender: &ComponentSender<CheckBox>, ) -> Result<CheckBox, Error>
Create the initial component.
Source§async fn update(
&mut self,
message: Self::Message,
sender: &ComponentSender<Self>,
) -> Result<bool, Self::Error>
async fn update( &mut self, message: Self::Message, sender: &ComponentSender<Self>, ) -> Result<bool, Self::Error>
Respond to the message. Return true if need render.
Source§fn render(&mut self, sender: &ComponentSender<Self>) -> Result<(), Self::Error>
fn render(&mut self, sender: &ComponentSender<Self>) -> Result<(), Self::Error>
Render the widgets.
Source§impl Layoutable for CheckBox
impl Layoutable for CheckBox
Source§impl TextWidget for CheckBox
impl TextWidget for CheckBox
Auto Trait Implementations§
impl Freeze for CheckBox
impl RefUnwindSafe for CheckBox
impl !Send for CheckBox
impl !Sync for CheckBox
impl Unpin for CheckBox
impl UnsafeUnpin for CheckBox
impl UnwindSafe for CheckBox
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more