#ifndef TEXT_H
#define TEXT_H
#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;
int start;
int end;
int len;
char *text;
} UiTextBufOp;
typedef struct UiUndoMgr {
UcxList *begin;
UcxList *cur;
int length;
int event;
} UiUndoMgr;
typedef struct UiTextArea {
UiContext *ctx;
int last_selection_state;
} UiTextArea;
char* ui_textarea_get(UiText *text);
void ui_textarea_set(UiText *text,
char *str);
char* ui_textarea_getsubstr(UiText *text,
int begin,
int end);
void ui_textarea_insert(UiText *text,
int pos,
char *str);
void ui_textarea_setposition(UiText *text,
int pos);
int ui_textarea_position(UiText *text);
void ui_textarea_selection(UiText *text,
int *begin,
int *end);
int ui_textarea_length(UiText *text);
UiUndoMgr* ui_create_undomgr();
void ui_text_selection_callback(
Widget widget,
UiTextArea *textarea,
XtPointer data);
void ui_text_modify_callback(Widget widget, UiVar *var, XtPointer data);
int ui_check_insertstr(
char *oldstr,
int oldlen,
char *newstr,
int newlen);
void ui_free_textbuf_op(UiTextBufOp *op);
char* ui_textfield_get(UiString *str);
void ui_textfield_set(UiString *str,
char *value);
#ifdef __cplusplus
}
#endif
#endif