171{
173 Portal::Text::EditableText edit = s->value;
175 s->write(edit);
176 render_text(*sl, edit, *p);
177 render_caret(*sl, edit, *p);
178 });
179
181 Portal::Text::EditableText edit = s->value;
183 s->write(edit);
184 render_text(*sl, edit, *p);
185 render_caret(*sl, edit, *p);
186 });
187
189 Portal::Text::EditableText edit = s->value;
191 s->write(edit);
192 render_text(*sl, edit, *p);
193 render_caret(*sl, edit, *p);
194 });
195
197 Portal::Text::EditableText edit = s->value;
199 s->write(edit);
200 render_text(*sl, edit, *p);
201 render_caret(*sl, edit, *p);
202 });
203
205 Portal::Text::EditableText edit = s->value;
207 s->write(edit);
208 render_text(*sl, edit, *p);
209 render_caret(*sl, edit, *p);
210 });
211
213 Portal::Text::EditableText edit = s->value;
215 s->write(edit);
216 render_caret(*sl, edit, *p);
217 });
218
220 Portal::Text::EditableText edit = s->value;
222 s->write(edit);
223 render_caret(*sl, edit, *p);
224 });
225
227 Portal::Text::EditableText edit = s->value;
228 move_vertical(edit, *sl, -1);
229 s->write(edit);
230 render_caret(*sl, edit, *p);
231 });
232
234 Portal::Text::EditableText edit = s->value;
235 move_vertical(edit, *sl, 1);
236 s->write(edit);
237 render_caret(*sl, edit, *p);
238 });
239
242 Portal::Text::EditableText edit = s->value;
243 move_to_click(edit, *sl, *fb, ndc);
244 s->write(edit);
245 render_caret(*sl, edit, *p);
246 });
247}
void move(EditableText &s, int n)
Move the cursor by n codepoints.
void erase(EditableText &s, int n)
Erase n codepoints from the cursor.
void insert_codepoint(EditableText &s, uint32_t codepoint)
Insert one codepoint at the cursor, advancing it past the insert.
void insert_literal(EditableText &s, char c)
Insert one raw ASCII byte at the cursor, advancing it past the insert.
std::shared_ptr< MappedState< Portal::Text::EditableText > > state
Live editable text and cursor. Valid after place().
uint32_t element_id
Element id of the text field. Valid after place().
std::shared_ptr< Portal::Text::PressParams > params
Shared, mutable render params - every re-render reads this fresh, so a caller can change it once and ...
std::shared_ptr< internal::TextSlice > slice
The text and caret drawn into buf. Valid after place().
std::shared_ptr< Kinesis::AABB2D > m_live_bounds
Same value as field_bounds, behind a shared_ptr so wire()'s already-captured Context closures see a r...