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);
66 DATHMIEVENT_TYPE_NONE,
67 DATHMIEVENT_TYPE_COMMON_MOUSEMOVE,
68 DATHMIEVENT_TYPE_COMMON_KEYDOWN,
69 DATHMIEVENT_TYPE_COMMON_MENU,
70 DATHMIEVENT_TYPE_COMMON_TIMEOUT,
71 DATHMIEVENT_TYPE_THREAD_DRAW,
72 DATHMIEVENT_TYPE_THREAD_RESIZE,
73 DATHMIEVENT_TYPE_THREAD_CLOSE,
74 DATHMIEVENT_TYPE_THREAD_BUTDN,
75 DATHMIEVENT_TYPE_THREAD_PASTE,
76 DATHMIEVENT_TYPE_THREAD_SWITCH,
77 DATHMIEVENT_TYPE_THREAD_MOUSEMOVE,
78 DATHMIEVENT_TYPE_CONFIRM_CLOSE,
79 DATHMIEVENT_TYPE_NGWORD_CLOSE,
82 struct dathmi_eventdata_mousemove_t_ {
86 struct dathmi_eventdata_keydown_t_ {
92 struct dathmi_eventdata_menu_t_ {
96 struct dathmi_eventdata_timeout_t_ {
100 struct datwindow_eventdata_draw_t_ {
103 struct datwindow_eventdata_resize_t_ {
108 struct datwindow_eventdata_close_t_ {
112 struct datwindow_eventdata_butdn_t_ {
117 struct datwindow_eventdata_paste_t_ {
120 struct datwindow_eventdata_switch_t_ {
124 struct datwindow_eventdata_mousemove_t_ {
129 struct cfrmwindow_eventdata_close_t_ {
133 typedef struct dathmi_eventdata_mousemove_t_ dathmi_eventdata_mousemove_t;
134 typedef struct dathmi_eventdata_keydown_t_ dathmi_eventdata_keydown_t;
135 typedef struct dathmi_eventdata_menu_t_ dathmi_eventdata_menu_t;
136 typedef struct dathmi_eventdata_timeout_t_ dathmi_eventdata_timeout_t;
137 typedef struct datwindow_eventdata_draw_t_ datwindow_eventdata_draw_t;
138 typedef struct datwindow_eventdata_resize_t_ datwindow_eventdata_resize_t;
139 typedef struct datwindow_eventdata_close_t_ datwindow_eventdata_close_t;
140 typedef struct datwindow_eventdata_butdn_t_ datwindow_eventdata_butdn_t;
141 typedef struct datwindow_eventdata_paste_t_ datwindow_eventdata_paste_t;
142 typedef struct datwindow_eventdata_switch_t_ datwindow_eventdata_switch_t;
143 typedef struct datwindow_eventdata_mousemove_t_ datwindow_eventdata_mousemove_t;
144 typedef struct cfrmwindow_eventdata_close_t_ cfrmwindow_eventdata_close_t;
146 struct dathmievent_t_ {
149 dathmi_eventdata_mousemove_t common_mousemove;
150 dathmi_eventdata_keydown_t common_keydown;
151 dathmi_eventdata_menu_t common_menu;
152 dathmi_eventdata_timeout_t common_timeout;
153 datwindow_eventdata_draw_t main_draw;
154 datwindow_eventdata_resize_t main_resize;
155 datwindow_eventdata_close_t main_close;
156 datwindow_eventdata_butdn_t main_butdn;
157 datwindow_eventdata_paste_t main_paste;
158 datwindow_eventdata_switch_t main_switch;
159 datwindow_eventdata_mousemove_t main_mousemove;
160 cfrmwindow_eventdata_close_t confirm_close;
163 typedef struct dathmievent_t_ dathmievent_t;
165 typedef struct dathmi_t_ dathmi_t;
167 IMPORT dathmi_t* dathmi_new();
168 IMPORT VOID dathmi_delete(dathmi_t *hmi);
169 IMPORT W dathmi_getevent(dathmi_t *hmi, dathmievent_t **evt);
170 IMPORT datwindow_t* dathmi_newmainwindow(dathmi_t *hmi, RECT *r, TC *title, PAT *bgpat, datwindow_scrollcalback scrollcallback, VP arg);
171 IMPORT cfrmwindow_t *dathmi_newconfirmwindow(dathmi_t *hmi, RECT *r, W dnum_title, W dnum_post, W dnum_cancel);
172 IMPORT ngwordwindow_t *dathmi_newngwordwindow(dathmi_t *hmi, PNT *p, W dnum_list, W dnum_delete, W dnum_input, W dnum_append);
173 IMPORT VOID dathmi_deletemainwindow(dathmi_t *hmi, datwindow_t *window);
174 IMPORT VOID dathmi_deleteconfirmwindow(dathmi_t *hmi, cfrmwindow_t *window);
175 IMPORT VOID dathmi_deletengwordwindow(dathmi_t *hmi, ngwordwindow_t *window);