Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2022-07-30 07:16:58 +0300
committerHans Goudey <h.goudey@me.com>2022-07-30 07:22:31 +0300
commit599a7ddf1784882ae796d94f148aa2a830639bc0 (patch)
tree5b01057eeb9b57c4e5d2a1ff229b8f2f89cbbc26 /source/blender/editors/interface/interface_undo.c
parente6b1e97dd70d5cae9d6cf06256be77e0bafa6554 (diff)
Cleanup: Move five interface files to C++
Builds on all four platforms on the buildbot. Includes clang tidy fixes.
Diffstat (limited to 'source/blender/editors/interface/interface_undo.c')
-rw-r--r--source/blender/editors/interface/interface_undo.c112
1 files changed, 0 insertions, 112 deletions
diff --git a/source/blender/editors/interface/interface_undo.c b/source/blender/editors/interface/interface_undo.c
deleted file mode 100644
index e998eb6dbed..00000000000
--- a/source/blender/editors/interface/interface_undo.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later
- * Copyright 2020 Blender Foundation. All rights reserved. */
-
-/** \file
- * \ingroup edinterface
- *
- * Undo stack to use for UI widgets that manage their own editing state.
- */
-
-#include <string.h>
-
-#include "BLI_listbase.h"
-
-#include "DNA_listBase.h"
-
-#include "MEM_guardedalloc.h"
-
-#include "interface_intern.h"
-
-/* -------------------------------------------------------------------- */
-/** \name Text Field Undo Stack
- * \{ */
-
-typedef struct uiUndoStack_Text_State {
- struct uiUndoStack_Text_State *next, *prev;
- int cursor_index;
- char text[0];
-} uiUndoStack_Text_State;
-
-typedef struct uiUndoStack_Text {
- ListBase states;
- uiUndoStack_Text_State *current;
-} uiUndoStack_Text;
-
-static const char *ui_textedit_undo_impl(uiUndoStack_Text *stack, int *r_cursor_index)
-{
- /* Don't undo if no data has been pushed yet. */
- if (stack->current == NULL) {
- return NULL;
- }
-
- /* Travel backwards in the stack and copy information to the caller. */
- if (stack->current->prev != NULL) {
- stack->current = stack->current->prev;
-
- *r_cursor_index = stack->current->cursor_index;
- return stack->current->text;
- }
- return NULL;
-}
-
-static const char *ui_textedit_redo_impl(uiUndoStack_Text *stack, int *r_cursor_index)
-{
- /* Don't redo if no data has been pushed yet. */
- if (stack->current == NULL) {
- return NULL;
- }
-
- /* Only redo if new data has not been entered since the last undo. */
- if (stack->current->next) {
- stack->current = stack->current->next;
-
- *r_cursor_index = stack->current->cursor_index;
- return stack->current->text;
- }
- return NULL;
-}
-
-const char *ui_textedit_undo(uiUndoStack_Text *stack, int direction, int *r_cursor_index)
-{
- BLI_assert(ELEM(direction, -1, 1));
- if (direction < 0) {
- return ui_textedit_undo_impl(stack, r_cursor_index);
- }
- return ui_textedit_redo_impl(stack, r_cursor_index);
-}
-
-void ui_textedit_undo_push(uiUndoStack_Text *stack, const char *text, int cursor_index)
-{
- /* Clear all redo actions from the current state. */
- if (stack->current != NULL) {
- while (stack->current->next) {
- uiUndoStack_Text_State *state = stack->current->next;
- BLI_remlink(&stack->states, state);
- MEM_freeN(state);
- }
- }
-
- /* Create the new state. */
- const int text_size = strlen(text) + 1;
- stack->current = MEM_mallocN(sizeof(uiUndoStack_Text_State) + text_size, __func__);
- stack->current->cursor_index = cursor_index;
- memcpy(stack->current->text, text, text_size);
- BLI_addtail(&stack->states, stack->current);
-}
-
-uiUndoStack_Text *ui_textedit_undo_stack_create(void)
-{
- uiUndoStack_Text *stack = MEM_mallocN(sizeof(uiUndoStack_Text), __func__);
- stack->current = NULL;
- BLI_listbase_clear(&stack->states);
-
- return stack;
-}
-
-void ui_textedit_undo_stack_destroy(uiUndoStack_Text *stack)
-{
- BLI_freelistN(&stack->states);
- MEM_freeN(stack);
-}
-
-/** \} */