ui/motif/text.h

changeset 450
99b5d52096b5
parent 414
ef60d527c066
equal deleted inserted replaced
449:7681d538deaf 450:99b5d52096b5
1 /* 1 /*
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. 2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3 * 3 *
4 * Copyright 2014 Olaf Wintermann. All rights reserved. 4 * Copyright 2025 Olaf Wintermann. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met: 7 * modification, are permitted provided that the following conditions are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
34 #include <cx/list.h> 34 #include <cx/list.h>
35 35
36 #ifdef __cplusplus 36 #ifdef __cplusplus
37 extern "C" { 37 extern "C" {
38 #endif 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; // UI_TEXTBUF_INSERT, UI_TEXTBUF_DELETE
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);
39 85
40 char* ui_textfield_get(UiString *str); 86 char* ui_textfield_get(UiString *str);
41 void ui_textfield_set(UiString *str, const char *value); 87 void ui_textfield_set(UiString *str, const char *value);
42 88
43 char* ui_path_textfield_get(UiString *str); 89 char* ui_path_textfield_get(UiString *str);

mercurial