4 * Copyright (c) 2011 project bchan
6 * This software is provided 'as-is', without any express or implied
7 * warranty. In no event will the authors be held liable for any damages
8 * arising from the use of this software.
10 * Permission is granted to anyone to use this software for any purpose,
11 * including commercial applications, and to alter it and redistribute it
12 * freely, subject to the following restrictions:
14 * 1. The origin of this software must not be misrepresented; you must not
15 * claim that you wrote the original software. If you use this software
16 * in a product, an acknowledgment in the product documentation would be
17 * appreciated but is not required.
19 * 2. Altered source versions must be plainly marked as such, and must not be
20 * misrepresented as being the original software.
22 * 3. This notice may not be removed or altered from any source
29 #include <btron/hmi.h>
36 typedef struct datwindow_t_ datwindow_t;
37 typedef VOID (*datwindow_scrollcalback)(VP arg, W dh, W dv);
39 IMPORT VOID datwindow_scrollbyvalue(datwindow_t *wscr, W dh, W dv);
40 IMPORT W datwindow_setdrawrect(datwindow_t *window, W l, W t, W r, W b);
41 IMPORT W datwindow_setworkrect(datwindow_t *window, W l, W t, W r, W b);
42 IMPORT VOID datwindow_responsepasterequest(datwindow_t *window, W nak, PNT *pos);
43 IMPORT W datwindow_startredisp(datwindow_t *window, RECT *r);
44 IMPORT W datwindow_endredisp(datwindow_t *window);
45 IMPORT W datwindow_eraseworkarea(datwindow_t *window, RECT *r);
46 IMPORT W datwindow_scrollworkarea(datwindow_t *window, W dh, W dv);
47 IMPORT W datwindow_getworkrect(datwindow_t *window, RECT *r);
48 IMPORT W datwindow_requestredisp(datwindow_t *window);
49 IMPORT GID datwindow_startdrag(datwindow_t *window);
50 IMPORT W datwindow_getdrag(datwindow_t *window, PNT *pos, WID *wid, PNT *pos_butup);
51 IMPORT VOID datwindow_enddrag(datwindow_t *window);
52 IMPORT GID datwindow_getGID(datwindow_t *window);
53 IMPORT WID datwindow_getWID(datwindow_t *window);
54 IMPORT W datwindow_settitle(datwindow_t *window, TC *title);
56 typedef struct cfrmwindow_t_ cfrmwindow_t;
58 IMPORT W cfrmwindow_open(cfrmwindow_t* window);
59 IMPORT VOID cfrmwindow_setpostresdata(cfrmwindow_t *window, postresdata_t *post);
61 typedef struct ngwordwindow_t_ ngwordwindow_t;
63 IMPORT W ngwordwindow_open(ngwordwindow_t *window);
64 IMPORT W ngwordwindow_appendword(ngwordwindow_t *window, TC *str, W len);
65 IMPORT W ngwordwindow_removeword(ngwordwindow_t *window, TC *str, W len);
68 DATHMIEVENT_TYPE_NONE,
69 DATHMIEVENT_TYPE_COMMON_MOUSEMOVE,
70 DATHMIEVENT_TYPE_COMMON_KEYDOWN,
71 DATHMIEVENT_TYPE_COMMON_MENU,
72 DATHMIEVENT_TYPE_COMMON_TIMEOUT,
73 DATHMIEVENT_TYPE_THREAD_DRAW,
74 DATHMIEVENT_TYPE_THREAD_RESIZE,
75 DATHMIEVENT_TYPE_THREAD_CLOSE,
76 DATHMIEVENT_TYPE_THREAD_BUTDN,
77 DATHMIEVENT_TYPE_THREAD_PASTE,
78 DATHMIEVENT_TYPE_THREAD_SWITCH,
79 DATHMIEVENT_TYPE_THREAD_MOUSEMOVE,
80 DATHMIEVENT_TYPE_CONFIRM_CLOSE,
81 DATHMIEVENT_TYPE_NGWORD_APPEND,
82 DATHMIEVENT_TYPE_NGWORD_REMOVE,
83 DATHMIEVENT_TYPE_NGWORD_CLOSE,
86 struct dathmi_eventdata_mousemove_t_ {
90 struct dathmi_eventdata_keydown_t_ {
96 struct dathmi_eventdata_menu_t_ {
100 struct dathmi_eventdata_timeout_t_ {
104 struct datwindow_eventdata_draw_t_ {
107 struct datwindow_eventdata_resize_t_ {
112 struct datwindow_eventdata_close_t_ {
116 struct datwindow_eventdata_butdn_t_ {
121 struct datwindow_eventdata_paste_t_ {
124 struct datwindow_eventdata_switch_t_ {
128 struct datwindow_eventdata_mousemove_t_ {
133 struct cfrmwindow_eventdata_close_t_ {
137 struct ngwordwindow_eventdata_append_t_ {
142 struct ngwordwindow_eventdata_remove_t_ {
147 typedef struct dathmi_eventdata_mousemove_t_ dathmi_eventdata_mousemove_t;
148 typedef struct dathmi_eventdata_keydown_t_ dathmi_eventdata_keydown_t;
149 typedef struct dathmi_eventdata_menu_t_ dathmi_eventdata_menu_t;
150 typedef struct dathmi_eventdata_timeout_t_ dathmi_eventdata_timeout_t;
151 typedef struct datwindow_eventdata_draw_t_ datwindow_eventdata_draw_t;
152 typedef struct datwindow_eventdata_resize_t_ datwindow_eventdata_resize_t;
153 typedef struct datwindow_eventdata_close_t_ datwindow_eventdata_close_t;
154 typedef struct datwindow_eventdata_butdn_t_ datwindow_eventdata_butdn_t;
155 typedef struct datwindow_eventdata_paste_t_ datwindow_eventdata_paste_t;
156 typedef struct datwindow_eventdata_switch_t_ datwindow_eventdata_switch_t;
157 typedef struct datwindow_eventdata_mousemove_t_ datwindow_eventdata_mousemove_t;
158 typedef struct cfrmwindow_eventdata_close_t_ cfrmwindow_eventdata_close_t;
159 typedef struct ngwordwindow_eventdata_append_t_ ngwordwindow_eventdata_append_t;
160 typedef struct ngwordwindow_eventdata_remove_t_ ngwordwindow_eventdata_remove_t;
162 struct dathmievent_t_ {
165 dathmi_eventdata_mousemove_t common_mousemove;
166 dathmi_eventdata_keydown_t common_keydown;
167 dathmi_eventdata_menu_t common_menu;
168 dathmi_eventdata_timeout_t common_timeout;
169 datwindow_eventdata_draw_t main_draw;
170 datwindow_eventdata_resize_t main_resize;
171 datwindow_eventdata_close_t main_close;
172 datwindow_eventdata_butdn_t main_butdn;
173 datwindow_eventdata_paste_t main_paste;
174 datwindow_eventdata_switch_t main_switch;
175 datwindow_eventdata_mousemove_t main_mousemove;
176 cfrmwindow_eventdata_close_t confirm_close;
177 ngwordwindow_eventdata_append_t ngword_append;
178 ngwordwindow_eventdata_remove_t ngword_remove;
181 typedef struct dathmievent_t_ dathmievent_t;
183 typedef struct dathmi_t_ dathmi_t;
185 IMPORT dathmi_t* dathmi_new();
186 IMPORT VOID dathmi_delete(dathmi_t *hmi);
187 IMPORT W dathmi_getevent(dathmi_t *hmi, dathmievent_t **evt);
188 IMPORT datwindow_t* dathmi_newmainwindow(dathmi_t *hmi, RECT *r, TC *title, PAT *bgpat, datwindow_scrollcalback scrollcallback, VP arg);
189 IMPORT cfrmwindow_t *dathmi_newconfirmwindow(dathmi_t *hmi, RECT *r, W dnum_title, W dnum_post, W dnum_cancel);
190 IMPORT ngwordwindow_t *dathmi_newngwordwindow(dathmi_t *hmi, PNT *p, W dnum_list, W dnum_delete, W dnum_input, W dnum_append);
191 IMPORT VOID dathmi_deletemainwindow(dathmi_t *hmi, datwindow_t *window);
192 IMPORT VOID dathmi_deleteconfirmwindow(dathmi_t *hmi, cfrmwindow_t *window);
193 IMPORT VOID dathmi_deletengwordwindow(dathmi_t *hmi, ngwordwindow_t *window);