1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #ifndef TEXT_H
30 #define TEXT_H
31
32 #include "../ui/text.h"
33 #include "toolkit.h"
34 #include <ucx/list.h>
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 #define UI_TEXTBUF_INSERT 0
41 #define UI_TEXTBUF_DELETE 1
42 typedef struct UiTextBufOp {
43 int type;
44 int start;
45 int end;
46 int len;
47 char *text;
48 } UiTextBufOp;
49
50 typedef struct UiUndoMgr {
51 UcxList *begin;
52 UcxList *cur;
53 int length;
54 int event;
55 } UiUndoMgr;
56
57 typedef struct UiTextArea {
58 UiContext *ctx;
59 int last_selection_state;
60 } UiTextArea;
61
62 char* ui_textarea_get(UiText *text);
63 void ui_textarea_set(UiText *text,
char *str);
64 char* ui_textarea_getsubstr(UiText *text,
int begin,
int end);
65 void ui_textarea_insert(UiText *text,
int pos,
char *str);
66 void ui_textarea_setposition(UiText *text,
int pos);
67 int ui_textarea_position(UiText *text);
68 void ui_textarea_selection(UiText *text,
int *begin,
int *end);
69 int ui_textarea_length(UiText *text);
70
71 UiUndoMgr* ui_create_undomgr();
72 void ui_text_selection_callback(
73 Widget widget,
74 UiTextArea *textarea,
75 XtPointer data);
76 void ui_text_modify_callback(Widget widget, UiVar *var, XtPointer data);
77 int ui_check_insertstr(
char *oldstr,
int oldlen,
char *newstr,
int newlen);
78 void ui_free_textbuf_op(UiTextBufOp *op);
79
80 char* ui_textfield_get(UiString *str);
81 void ui_textfield_set(UiString *str,
char *value);
82
83 #ifdef __cplusplus
84 }
85 #endif
86
87 #endif
88
89