diff -r 19d37cb9c96c -r 05a18c56d9ca ui/gtk/text.h --- a/ui/gtk/text.h Sat Mar 22 19:45:44 2014 +0100 +++ b/ui/gtk/text.h Mon Mar 24 11:21:59 2014 +0100 @@ -31,11 +31,29 @@ #include "../ui/text.h" #include "toolkit.h" +#include "../../ucx/list.h" #ifdef __cplusplus extern "C" { #endif +#define UI_TEXTBUF_INSERT 0 +#define UI_TEXTBUF_DELETE 1 +typedef struct UiTextBufOp { + int type; // UI_TEXTBUF_INSERT, UI_TEXTBUF_DELETE + int start; + int end; + int len; + char *text; +} UiTextBufOp; + +typedef struct UiUndoMgr { + UcxList *begin; + UcxList *cur; + int length; + int event; +} UiUndoMgr; + char* ui_textarea_get(UiText *text); void ui_textarea_set(UiText *text, char *str); void ui_textarea_realize_event(GtkWidget *widget, gpointer data); @@ -50,6 +68,9 @@ GtkTextIter *start, GtkTextIter *end, void *data); +UiUndoMgr* ui_create_undomgr(); +void ui_free_textbuf_op(UiTextBufOp *op); +int ui_check_insertstr(char *oldstr, int oldlen, char *newstr, int newlen); #ifdef __cplusplus }