pub struct TextBox { /* private fields */ }Available on crate feature
winio only.Expand description
A simple multi-line text input box.
Implementations§
Source§impl TextBox
impl TextBox
Sourcepub fn text(&self) -> String
pub fn text(&self) -> String
The text.
Examples found in repository?
examples/test/widgets.rs (line 248)
187 async fn update(&mut self, message: Self::Message, sender: &ComponentSender<Self>) -> bool {
188 futures_util::future::join(self.window.update(), self.canvas.update()).await;
189 match message {
190 MainMessage::Noop => false,
191 MainMessage::Close => {
192 sender.output(());
193 false
194 }
195 MainMessage::Redraw => true,
196 MainMessage::PasswordCheck => {
197 self.pentry.set_password(!self.pcheck.is_checked());
198 true
199 }
200 MainMessage::List(e) => {
201 self.pop_button.set_enabled(!self.list.is_empty());
202 self.combo
203 .emit(ComboBoxMessage::from_observable_vec_event(e))
204 .await
205 }
206 MainMessage::Select => {
207 self.index = self.combo.selection();
208 false
209 }
210 MainMessage::Push => {
211 self.list.push(
212 match self.rindex {
213 0 => &self.r1,
214 1 => &self.r2,
215 2 => &self.r3,
216 _ => unreachable!(),
217 }
218 .text(),
219 );
220 false
221 }
222 MainMessage::Pop => {
223 self.list.pop();
224 false
225 }
226 MainMessage::RSelect(i) => {
227 self.rindex = i;
228 false
229 }
230 MainMessage::Show => {
231 MessageBox::new()
232 .title("Show selected item")
233 .message(
234 self.index
235 .and_then(|index| self.list.get(index))
236 .map(|s| s.as_str())
237 .unwrap_or("No selection."),
238 )
239 .buttons(MessageBoxButton::Ok)
240 .show(&self.window)
241 .await;
242 false
243 }
244 MainMessage::OptionsPage(m) => {
245 tracing::debug!(?m, "Options page message");
246 match m {
247 OptionsPageMessage::Save(config, tx) => {
248 config.s = self.mltext.text();
249 tx.send(config).unwrap()
250 }
251 }
252 false
253 }
254 }
255 }Sourcepub fn set_text(&mut self, s: impl AsRef<str>)
pub fn set_text(&mut self, s: impl AsRef<str>)
Set the text.
Lines are separated with \n. You don’t need to handle CRLF.
Examples found in repository?
examples/test/widgets.rs (line 128)
67 fn init(mut init: Self::Init<'_>, sender: &ComponentSender<Self>) -> Self {
68 // let mut window = Child::<Window>::init(init);
69 let mut window = init.window(sender);
70 window.set_text("Widgets example");
71 window.set_size(Size::new(800.0, 600.0));
72 init! {
73 canvas: Canvas = (&window),
74 ulabel: Label = (&window) => {
75 text: "Username:",
76 halign: HAlign::Right,
77 },
78 plabel: Label = (&window) => {
79 text: "Password:",
80 halign: HAlign::Right,
81 },
82 uentry: Edit = (&window) => {
83 text: "AAA",
84 },
85 pentry: Edit = (&window) => {
86 text: "123456",
87 password: true,
88 },
89 pcheck: CheckBox = (&window) => {
90 text: "Show",
91 checked: false,
92 },
93 combo: ComboBox = (&window),
94 list: ObservableVec<String> = (()) => {
95 // https://www.zhihu.com/question/23600507/answer/140640887
96 items: [
97 "烫烫烫",
98 "昍昍昍",
99 "フフフフフフ",
100 "쳌쳌쳌"
101 ],
102 },
103 r1: RadioButton = (&window) => {
104 text: "屯屯屯",
105 checked: true,
106 },
107 r2: RadioButton = (&window) => {
108 text: "锟斤拷",
109 },
110 r3: RadioButton = (&window) => {
111 text: "╠╠╠"
112 },
113 push_button: Button = (&window) => {
114 text: "Push",
115 },
116 pop_button: Button = (&window) => {
117 text: "Pop",
118 },
119 show_button: Button = (&window) => {
120 text: "Show",
121 },
122 progress: Progress = (&window) => {
123 indeterminate: true,
124 },
125 mltext: TextBox = (&window) => {
126 },
127 }
128 HANDLER.with_app(|a| mltext.set_text(&a.config().s));
129
130 window.show();
131
132 Self {
133 window,
134 ulabel,
135 plabel,
136 uentry,
137 pentry,
138 pcheck,
139 canvas,
140 combo,
141 list,
142 index: None,
143 r1,
144 r2,
145 r3,
146 rindex: 0,
147 push_button,
148 pop_button,
149 show_button,
150 progress,
151 mltext,
152 }
153 }Sourcepub fn set_halign(&mut self, align: HAlign)
pub fn set_halign(&mut self, align: HAlign)
Set the horizontal alignment.
Trait Implementations§
Source§impl AsRawWidget for TextBox
impl AsRawWidget for TextBox
Source§fn as_raw_widget(&self) -> RawWidget
fn as_raw_widget(&self) -> RawWidget
Get the raw window handle.
Source§impl AsWidget for TextBox
impl AsWidget for TextBox
Source§fn as_widget(&self) -> BorrowedWidget<'_>
fn as_widget(&self) -> BorrowedWidget<'_>
Get the window handle.
Source§impl Component for TextBox
impl Component for TextBox
Source§type Event = TextBoxEvent
type Event = TextBoxEvent
The output event type to the parent.
Source§type Init<'a> = BorrowedWindow<'a>
type Init<'a> = BorrowedWindow<'a>
Initial parameter type.
Source§fn init(
init: <TextBox as Component>::Init<'_>,
_sender: &ComponentSender<TextBox>,
) -> TextBox
fn init( init: <TextBox as Component>::Init<'_>, _sender: &ComponentSender<TextBox>, ) -> TextBox
Create the initial component.
Source§async fn update(
&mut self,
_message: <TextBox as Component>::Message,
_sender: &ComponentSender<TextBox>,
) -> bool
async fn update( &mut self, _message: <TextBox as Component>::Message, _sender: &ComponentSender<TextBox>, ) -> bool
Respond to the message.
Source§fn render(&mut self, _sender: &ComponentSender<TextBox>)
fn render(&mut self, _sender: &ComponentSender<TextBox>)
Render the widgets.
Source§impl Layoutable for TextBox
impl Layoutable for TextBox
Source§fn preferred_size(&self) -> Size2D<f64, LogicalSpace>
fn preferred_size(&self) -> Size2D<f64, LogicalSpace>
The preferred size.
Auto Trait Implementations§
impl Freeze for TextBox
impl RefUnwindSafe for TextBox
impl !Send for TextBox
impl !Sync for TextBox
impl Unpin for TextBox
impl UnwindSafe for TextBox
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