OSDN Git Service

d936dab10f396953afb18fad8d23f50bb7c67bea
[bbk/bchan.git] / src / hmi.h
1 /*
2  * hmi.h
3  *
4  * Copyright (c) 2011 project bchan
5  *
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.
9  *
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:
13  *
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.
18  *
19  * 2. Altered source versions must be plainly marked as such, and must not be
20  *    misrepresented as being the original software.
21  *
22  * 3. This notice may not be removed or altered from any source
23  *    distribution.
24  *
25  */
26
27 #include    <basic.h>
28 #include        <btron/dp.h>
29 #include        <btron/hmi.h>
30
31 #include        "postres.h"
32
33 #ifndef __HMI_H__
34 #define __HMI_H__
35
36 typedef struct datwindow_t_ datwindow_t;
37 typedef VOID (*datwindow_scrollcalback)(VP arg, W dh, W dv);
38
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);
55
56 typedef struct cfrmwindow_t_ cfrmwindow_t;
57
58 IMPORT W cfrmwindow_open(cfrmwindow_t* window);
59 IMPORT VOID cfrmwindow_setpostresdata(cfrmwindow_t *window, postresdata_t *post);
60
61 typedef struct ngwordwindow_t_ ngwordwindow_t;
62
63 IMPORT W ngwordwindow_open(ngwordwindow_t *window);
64
65 enum {
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,
80 };
81
82 struct dathmi_eventdata_mousemove_t_ {
83         PNT pos;
84 };
85
86 struct dathmi_eventdata_keydown_t_ {
87         TC keycode;
88         UH keytop;
89         UW stat;
90 };
91
92 struct dathmi_eventdata_menu_t_ {
93         PNT pos;
94 };
95
96 struct dathmi_eventdata_timeout_t_ {
97         W code;
98 };
99
100 struct datwindow_eventdata_draw_t_ {
101 };
102
103 struct datwindow_eventdata_resize_t_ {
104         SIZE work_sz;
105         Bool needdraw;
106 };
107
108 struct datwindow_eventdata_close_t_ {
109         Bool save;
110 };
111
112 struct datwindow_eventdata_butdn_t_ {
113         W type;
114         PNT pos;
115 };
116
117 struct datwindow_eventdata_paste_t_ {
118 };
119
120 struct datwindow_eventdata_switch_t_ {
121         Bool needdraw;
122 };
123
124 struct datwindow_eventdata_mousemove_t_ {
125         PNT pos;
126         UW stat;
127 };
128
129 struct cfrmwindow_eventdata_close_t_ {
130         Bool send;
131 };
132
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;
145
146 struct dathmievent_t_ {
147         W type;
148         union  {
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;
161         } data;
162 };
163 typedef struct dathmievent_t_ dathmievent_t;
164
165 typedef struct dathmi_t_ dathmi_t;
166
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);
176
177 #endif