Lines Matching refs:undo

4225  * downside in comparison with the other two approaches is missing undo/redo.
4227 * For UIs that require undo/redo the second way was created. It is based on
4228 * a fixed size nk_text_edit struct, which has an internal undo/redo stack.
4298 struct nk_text_undo_state undo;
5591 * undo/redo stack. Therefore it does not make sense to have one for
21908 /* delete characters while updating undo */
22041 /* remove the undo since we didn't actually insert the characters */
22042 if (state->undo.undo_point)
22043 --state->undo.undo_point;
22414 /* discard the oldest entry in the undo list */
22416 /* if the 0th undo state has characters, clean those up */
22438 ever happens, but because undo & redo have to store the actual
22440 fill up even though the undo buffer didn't */
22444 /* if the k'th undo state has characters, clean those up */
22468 /* any time we create a new undo record, we discard redo*/
22477 * we can't undo */
22514 struct nk_text_undo_state *s = &state->undo;
22519 /* we need to do two things: apply the undo record, and create a redo record */
22530 /* if the undo record says to delete characters, then the redo record will
22539 /* the undo records take up too much character space; there's no space
22581 struct nk_text_undo_state *s = &state->undo;
22586 /* we need to do two things: apply the redo record, and create an undo record */
22590 /* we KNOW there must be room for the undo record, because the redo record
22591 was derived from an undo record */
22598 /* the redo record requires us to delete characters, so the undo record
22630 nk_textedit_createundo(&state->undo, where, 0, length);
22636 nk_rune *p = nk_textedit_createundo(&state->undo, where, length, 0);
22647 nk_rune *p = nk_textedit_createundo(&state->undo, where, old_length, new_length);
22658 state->undo.undo_point = 0;
22659 state->undo.undo_char_point = 0;
22660 state->undo.redo_point = NK_TEXTEDIT_UNDOSTATECOUNT;
22661 state->undo.redo_char_point = NK_TEXTEDIT_UNDOCHARCOUNT;