Commit 750adb4c687bafb6dc3b542393749712063e2c04
1 parent
ae1ce6b4
Exists in
master
Implementando callbacks baseados em sessao
Showing
2 changed files
with
13 additions
and
3 deletions
Show diff stats
latest/src/include/lib3270/api.h
... | ... | @@ -185,7 +185,9 @@ |
185 | 185 | |
186 | 186 | struct lib3270_state_callback; |
187 | 187 | |
188 | - typedef struct _h3270 | |
188 | + typedef struct _h3270 H3270; | |
189 | + | |
190 | + struct _h3270 | |
189 | 191 | { |
190 | 192 | unsigned short sz; /**< Struct size */ |
191 | 193 | |
... | ... | @@ -257,14 +259,16 @@ |
257 | 259 | struct lib3270_state_callback *st_last[N_ST]; |
258 | 260 | |
259 | 261 | /* Session based callbacks */ |
262 | + void (*configure)(H3270 *session, int rows, int cols); | |
263 | + void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr); | |
260 | 264 | |
261 | - } H3270; | |
265 | + }; | |
262 | 266 | |
263 | 267 | struct lib3270_state_callback |
264 | 268 | { |
265 | 269 | struct lib3270_state_callback * next; /**< Next callback in chain */ |
266 | 270 | void * data; /**< User data */ |
267 | - void (*func)(struct _h3270 *, int, void *); /**< Function to call */ | |
271 | + void (*func)(H3270 *, int, void *); /**< Function to call */ | |
268 | 272 | }; |
269 | 273 | |
270 | 274 | ... | ... |
latest/src/lib/screen.c
... | ... | @@ -110,6 +110,9 @@ static void addch(H3270 *session, int baddr, unsigned char c, unsigned short att |
110 | 110 | |
111 | 111 | if(callbacks && callbacks->addch) |
112 | 112 | callbacks->addch(baddr/session->cols, baddr%session->cols, c, attr); |
113 | + | |
114 | + if(session->update) | |
115 | + session->update(session,baddr,c,attr); | |
113 | 116 | } |
114 | 117 | |
115 | 118 | /** |
... | ... | @@ -571,6 +574,9 @@ void set_viewsize(H3270 *session, int rows, int cols) |
571 | 574 | if(callbacks && callbacks->set_viewsize) |
572 | 575 | callbacks->set_viewsize(session,rows,cols); |
573 | 576 | |
577 | + if(session->configure) | |
578 | + session->configure(session,rows,cols); | |
579 | + | |
574 | 580 | } |
575 | 581 | |
576 | 582 | void status_lu(H3270 *session, const char *lu) | ... | ... |