Commit 89693dd5a8048c7a75ee1b71819617c8212e7d2f
1 parent
853ed0a3
Exists in
master
Atualizando callbacks de configuração do tamanho da tela
Showing
4 changed files
with
17 additions
and
14 deletions
Show diff stats
src/gtk2/screen.c
... | ... | @@ -83,7 +83,7 @@ |
83 | 83 | static gchar * convert_monocase(int c, gsize *sz); |
84 | 84 | static gchar * convert_regular(int c, gsize *sz); |
85 | 85 | static int popup_dialog(H3270 *session, PW3270_DIALOG type, const char *title, const char *msg, const char *fmt, va_list arg); |
86 | - static void model_changed(H3270 *session, const char *name, int model, int cols, int rows); | |
86 | + static void model_changed(H3270 *session, const char *name, int model, int rows, int cols); | |
87 | 87 | |
88 | 88 | #ifdef HAVE_ALTSCREEN |
89 | 89 | static void view_changed(H3270 *session, unsigned short rows, unsigned short cols); |
... | ... | @@ -102,7 +102,7 @@ |
102 | 102 | warning, // void (*Warning)(const char *fmt, va_list arg); |
103 | 103 | syserror, // void (*SysError)(const char *title, const char *message, const char *system); |
104 | 104 | |
105 | - model_changed, // void (*model_changed)(H3270 *session, const char *name, int model, int cols, int rows); | |
105 | + model_changed, // void (*model_changed)(H3270 *session, const char *name, int model, int rows, int cols); | |
106 | 106 | |
107 | 107 | addch, // void (*addch)(int row, int col, unsigned char c, int attr); |
108 | 108 | set_charset, // void (*charset)(char *dcs); |
... | ... | @@ -874,7 +874,7 @@ |
874 | 874 | |
875 | 875 | } |
876 | 876 | |
877 | - static void model_changed(H3270 *session, const char *name, int model, int cols, int rows) | |
877 | + static void model_changed(H3270 *session, const char *name, int model, int rows, int cols) | |
878 | 878 | { |
879 | 879 | int length = rows*cols; |
880 | 880 | ... | ... |
src/include/lib3270/api.h
... | ... | @@ -274,7 +274,7 @@ |
274 | 274 | void (*update_luname)(H3270 *session, const char *name); |
275 | 275 | void (*update_status)(H3270 *session, LIB3270_STATUS id); |
276 | 276 | void (*update_connect)(H3270 *session, unsigned char connected); |
277 | - void (*update_model)(H3270 *session, int model); | |
277 | + void (*update_model)(H3270 *session, const char *name, int model, int rows, int cols); | |
278 | 278 | |
279 | 279 | void (*set_timer)(H3270 *session, unsigned char on); |
280 | 280 | void (*erase)(H3270 *session); |
... | ... | @@ -496,7 +496,7 @@ |
496 | 496 | void (*Error)(const char *fmt, va_list arg); |
497 | 497 | void (*Warning)(const char *fmt, va_list arg); |
498 | 498 | void (*SysError)(const char *title, const char *message, const char *system); |
499 | - void (*model_changed)(H3270 *session, const char *name, int model, int cols, int rows); | |
499 | + void (*model_changed)(H3270 *session, const char *name, int model, int rows, int cols); | |
500 | 500 | int (*addch)(int row, int col, unsigned char c, unsigned short attr); |
501 | 501 | void (*charset)(char *dcs); |
502 | 502 | void (*title)(char *text); | ... | ... |
src/lib/ctlr.c
... | ... | @@ -200,14 +200,9 @@ int lib3270_set_model(H3270 *session, int model) |
200 | 200 | if(CONNECTED) |
201 | 201 | return EBUSY; |
202 | 202 | |
203 | - if(session->model_num != model) | |
204 | - { | |
205 | - ctlr_set_rows_cols(session,model,session->ov_cols,session->ov_rows); | |
206 | - ctlr_reinit(session,MODEL_CHANGE); | |
203 | + ctlr_set_rows_cols(session,model,session->ov_cols,session->ov_rows); | |
204 | + ctlr_reinit(session,MODEL_CHANGE); | |
207 | 205 | |
208 | - if(session->update_model) | |
209 | - session->update_model(session,model); | |
210 | - } | |
211 | 206 | return 0; |
212 | 207 | } |
213 | 208 | ... | ... |
src/lib/screen.c
... | ... | @@ -153,6 +153,9 @@ int screen_init(H3270 *session) |
153 | 153 | if(callbacks->toggle_changed) |
154 | 154 | session->update_toggle = callbacks->toggle_changed; |
155 | 155 | |
156 | + if(callbacks->model_changed) | |
157 | + session->update_model = callbacks->model_changed; | |
158 | + | |
156 | 159 | if(callbacks->init()) |
157 | 160 | { |
158 | 161 | popup_an_error("Can't initialize terminal."); |
... | ... | @@ -312,8 +315,13 @@ void update_model_info(H3270 *session, int model, int cols, int rows) |
312 | 315 | /* Update the model name. */ |
313 | 316 | (void) sprintf(session->model_name, "327%c-%d%s",appres.m3279 ? '9' : '8',session->model_num,appres.extended ? "-E" : ""); |
314 | 317 | |
315 | - if(callbacks && callbacks->model_changed) | |
316 | - callbacks->model_changed(session, session->model_name,session->model_num,cols,rows); | |
318 | + if(session->configure) | |
319 | + session->configure(session,rows,cols); | |
320 | + | |
321 | + if(session->update_model) | |
322 | + session->update_model(session, session->model_name,session->model_num,rows,cols); | |
323 | + else if(callbacks && callbacks->model_changed) | |
324 | + callbacks->model_changed(session, session->model_name,session->model_num,rows,cols); | |
317 | 325 | } |
318 | 326 | |
319 | 327 | LIB3270_EXPORT int lib3270_get_contents(H3270 *h, int first, int last, unsigned char *chr, unsigned short *attr) | ... | ... |