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 <cx/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 UiTextBufOp;
43 struct UiTextBufOp {
44 UiTextBufOp *prev;
45 UiTextBufOp *next;
46 int type;
47 int start;
48 int end;
49 int len;
50 char *text;
51 };
52
53 typedef struct UiUndoMgr {
54 UiTextBufOp *begin;
55 UiTextBufOp *end;
56 UiTextBufOp *cur;
57 int length;
58 int event;
59 } UiUndoMgr;
60
61 typedef struct UiTextArea {
62 UiObject *obj;
63 UiVar *var;
64 int last_selection_state;
65 } UiTextArea;
66
67 char* ui_textarea_get(UiText *text);
68 void ui_textarea_set(UiText *text,
const char *str);
69 char* ui_textarea_getsubstr(UiText *text,
int begin,
int end);
70 void ui_textarea_insert(UiText *text,
int pos,
char *str);
71 void ui_textarea_setposition(UiText *text,
int pos);
72 int ui_textarea_position(UiText *text);
73 void ui_textarea_selection(UiText *text,
int *begin,
int *end);
74 int ui_textarea_length(UiText *text);
75
76 UiUndoMgr* ui_create_undomgr();
77 void ui_destroy_undomgr(UiUndoMgr *mgr);
78 void ui_text_selection_callback(
79 Widget widget,
80 UiTextArea *textarea,
81 XtPointer data);
82 void ui_text_modify_callback(Widget widget, UiVar *var, XtPointer data);
83 int ui_check_insertstr(
char *oldstr,
int oldlen,
char *newstr,
int newlen);
84 void ui_free_textbuf_op(UiTextBufOp *op);
85
86 char* ui_textfield_get(UiString *str);
87 void ui_textfield_set(UiString *str,
const char *value);
88
89 char* ui_path_textfield_get(UiString *str);
90 void ui_path_textfield_set(UiString *str,
const char *value);
91
92
93 #ifdef __cplusplus
94 }
95 #endif
96
97 #endif
98
99