Commit aeb391fdd6aa3ad64aa28989a181475387a7d68a

Authored by perry.werneck@gmail.com
1 parent cce6667c
Exists in master

Mais ajustes nos toggles para multi-sessao

latest/src/include/lib3270.h
... ... @@ -378,7 +378,7 @@
378 378 * @return 0 if the toggle is disabled, non zero if enabled.
379 379 *
380 380 */
381   - LIB3270_EXPORT unsigned char lib3270_get_toogle(H3270 *h, LIB3270_TOGGLE ix);
  381 + LIB3270_EXPORT unsigned char lib3270_get_toggle(H3270 *h, LIB3270_TOGGLE ix);
382 382  
383 383 /**
384 384 * Check if the active connection is secure.
... ...
latest/src/include/lib3270/api.h
... ... @@ -586,7 +586,7 @@
586 586  
587 587 LIB3270_EXPORT SCRIPT_STATE status_script(SCRIPT_STATE state);
588 588  
589   - #define Toggled(ix) lib3270_get_toogle(NULL,ix)
  589 + #define Toggled(ix) lib3270_get_toggle(NULL,ix)
590 590 #define CallAndWait(c,h,p) lib3270_call_thread(c,h,p)
591 591  
592 592 LIB3270_EXPORT void RunPendingEvents(int wait);
... ...
latest/src/lib/appres.h
... ... @@ -20,47 +20,7 @@
20 20 * tcl3270.
21 21 */
22 22  
23   -#if defined(LIB3270)
24   - #include <lib3270/toggle.h>
25   -#else
26   - #define MONOCASE 0
27   - #define ALT_CURSOR 1
28   - #define CURSOR_BLINK 2
29   - #define SHOW_TIMING 3
30   - #define CURSOR_POS 4
31   -
32   - #if defined(X3270_TRACE) /*[*/
33   - #define DS_TRACE 5
34   - #endif /*]*/
35   -
36   - #define SCROLL_BAR 6
37   -
38   - #if defined(X3270_ANSI) /*[*/
39   - #define LINE_WRAP 7
40   - #endif /*]*/
41   -
42   - #define BLANK_FILL 8
43   -
44   - #if defined(X3270_TRACE) /*[*/
45   - #define SCREEN_TRACE 9
46   - #define EVENT_TRACE 10
47   - #endif /*]*/
48   -
49   - #define MARGINED_PASTE 11
50   - #define RECTANGLE_SELECT 12
51   -
52   - #if defined(X3270_DISPLAY) /*[*/
53   - #define CROSSHAIR 13
54   - #define VISIBLE_CONTROL 14
55   - #endif /*]*/
56   -
57   - #if defined(X3270_SCRIPT) || defined(TCL3270) /*[*/
58   - #define AID_WAIT 15
59   - #endif /*]*/
60   -
61   - #define N_TOGGLES 16
62   -
63   -#endif
  23 +#include <lib3270/toggle.h>
64 24  
65 25 /* Toggles */
66 26  
... ... @@ -149,7 +109,8 @@ typedef struct {
149 109 char *compose_map;
150 110 char *printer_lu;
151 111 #endif /*]*/
152   -#if defined(X3270_DISPLAY) /*[*/
  112 +/*
  113 +#if defined(X3270_DISPLAY)
153 114 char *efontname;
154 115 char *fixed_size;
155 116 char *debug_font;
... ... @@ -168,11 +129,12 @@ typedef struct {
168 129 char *char_class;
169 130 int modified_sel_color;
170 131 int visual_select_color;
171   -#if defined(X3270_DBCS) /*[*/
  132 +#if defined(X3270_DBCS)
172 133 char *input_method;
173 134 char *preedit_type;
174   -#endif /*]*/
175   -#endif /*]*/
  135 +#endif
  136 +#endif
  137 +*/
176 138 #if defined(X3270_DBCS) /*[*/
177 139 char *local_encoding;
178 140 #endif /*]*/
... ... @@ -220,14 +182,14 @@ typedef struct {
220 182  
221 183 /* Toggles */
222 184 struct toggle toggle[N_TOGGLES];
223   -
224   -#if defined(X3270_DISPLAY) /*[*/
225   - /* Simple widget resources */
  185 +/*
  186 +#if defined(X3270_DISPLAY)
  187 + // Simple widget resources
226 188 Cursor normal_mcursor;
227 189 Cursor wait_mcursor;
228 190 Cursor locked_mcursor;
229   -#endif /*]*/
230   -
  191 +#endif
  192 +*/
231 193 #if defined(X3270_ANSI) /*[*/
232 194 /* Line-mode TTY parameters */
233 195 char icrnl;
... ...
latest/src/lib/globals.h
... ... @@ -349,6 +349,4 @@ enum state_change
349 349  
350 350 /* Library internal calls */
351 351  
352   -LIB3270_INTERNAL void initialize_toggles(void);
353   -LIB3270_INTERNAL void shutdown_toggles(void);
354 352  
... ...
latest/src/lib/glue.c
... ... @@ -145,7 +145,7 @@ const char *toggle_names[N_TOGGLES] =
145 145  
146 146 void lib3270_session_free(H3270 *h)
147 147 {
148   -
  148 + shutdown_toggles(h,appres.toggle);
149 149 }
150 150  
151 151 void lib3270_session_init(H3270 *hSession, const char *model)
... ... @@ -284,7 +284,7 @@ static void initialize(void)
284 284 Trace("Initializing library (calls: %d)",init_calls);
285 285 #endif
286 286  
287   - initialize_toggles();
  287 + initialize_toggles(&h3270,appres.toggle);
288 288  
289 289 #if defined(_WIN32)
290 290 (void) get_version_info();
... ...
latest/src/lib/toggles.c
... ... @@ -84,7 +84,7 @@ LIB3270_EXPORT int lib3270_register_tchange(H3270 *h, LIB3270_TOGGLE_ID ix, void
84 84 return 0;
85 85 }
86 86  
87   -LIB3270_EXPORT unsigned char lib3270_get_toogle(H3270 *session, LIB3270_TOGGLE ix)
  87 +LIB3270_EXPORT unsigned char lib3270_get_toggle(H3270 *session, LIB3270_TOGGLE ix)
88 88 {
89 89 CHECK_SESSION_HANDLE(session);
90 90  
... ... @@ -159,59 +159,43 @@ LIB3270_EXPORT int lib3270_toggle(H3270 *session, LIB3270_TOGGLE_ID ix)
159 159 /*
160 160 * Called from system initialization code to handle initial toggle settings.
161 161 */
162   -void
163   -initialize_toggles(void)
  162 +void initialize_toggles(H3270 *session, struct toggle *toggle)
164 163 {
165 164 int f;
166 165  
167   -#if defined(LIB3270)
168 166 for(f=0;f<N_TOGGLES;f++)
169 167 {
170   - appres.toggle[f].callback = no_callback;
171   - appres.toggle[f].upcall = toggle_nop;
  168 + toggle[f].callback = no_callback;
  169 + toggle[f].upcall = toggle_nop;
172 170 }
  171 +
  172 +#if defined(X3270_TRACE)
  173 + toggle[DS_TRACE].upcall = toggle_dsTrace;
  174 + toggle[SCREEN_TRACE].upcall = toggle_screenTrace;
  175 + toggle[EVENT_TRACE].upcall = toggle_eventTrace;
173 176 #endif
174 177  
175   -//#if defined(X3270_DISPLAY) || defined(C3270) /*[*/
176   -// appres.toggle[MONOCASE].upcall = toggle_monocase;
177   -//#endif /*]*/
  178 +#if defined(X3270_ANSI)
  179 + toggle[LINE_WRAP].upcall = toggle_lineWrap;
  180 +#endif
178 181  
179   -#if defined(X3270_DISPLAY) /*[*/
180   - appres.toggle[ALT_CURSOR].upcall = toggle_altCursor;
181   - appres.toggle[CURSOR_BLINK].upcall = toggle_cursorBlink;
182   - appres.toggle[SHOW_TIMING].upcall = toggle_showTiming;
183   - appres.toggle[CURSOR_POS].upcall = toggle_cursorPos;
184   - appres.toggle[SCROLL_BAR].upcall = toggle_scrollBar;
185   - appres.toggle[CROSSHAIR].upcall = toggle_crosshair;
186   - appres.toggle[VISIBLE_CONTROL].upcall = toggle_visible_control;
187   -#endif /*]*/
188   -#if defined(X3270_TRACE) /*[*/
189   - appres.toggle[DS_TRACE].upcall = toggle_dsTrace;
190   - appres.toggle[SCREEN_TRACE].upcall = toggle_screenTrace;
191   - appres.toggle[EVENT_TRACE].upcall = toggle_eventTrace;
192   -#endif /*]*/
193   -#if defined(X3270_ANSI) /*[*/
194   - appres.toggle[LINE_WRAP].upcall = toggle_lineWrap;
195   -#endif /*]*/
  182 +#if defined(X3270_TRACE)
  183 + if(toggle[DS_TRACE].value)
  184 + toggle[DS_TRACE].upcall(&toggle[DS_TRACE],TT_INITIAL);
196 185  
197   -#if defined(X3270_TRACE) /*[*/
198   - if (toggled(DS_TRACE))
199   - appres.toggle[DS_TRACE].upcall(&appres.toggle[DS_TRACE],
200   - TT_INITIAL);
201   - if (toggled(EVENT_TRACE))
202   - appres.toggle[EVENT_TRACE].upcall(&appres.toggle[EVENT_TRACE],
203   - TT_INITIAL);
204   - if (toggled(SCREEN_TRACE))
205   - appres.toggle[SCREEN_TRACE].upcall(&appres.toggle[SCREEN_TRACE],
206   - TT_INITIAL);
207   -#endif /*]*/
  186 + if(toggle[EVENT_TRACE].value)
  187 + toggle[EVENT_TRACE].upcall(&toggle[EVENT_TRACE],TT_INITIAL);
  188 +
  189 + if(toggle[SCREEN_TRACE].value)
  190 + toggle[SCREEN_TRACE].upcall(&toggle[SCREEN_TRACE],TT_INITIAL);
  191 +#endif
208 192  
209 193 #if defined(DEFAULT_TOGGLE_CURSOR_POS)
210   - appres.toggle[CURSOR_POS].value = True;
  194 + toggle[CURSOR_POS].value = True;
211 195 #endif /*]*/
212 196  
213 197 #if defined(DEFAULT_TOGGLE_RECTANGLE_SELECT)
214   - appres.toggle[RECTANGLE_SELECT].value = True;
  198 + toggle[RECTANGLE_SELECT].value = True;
215 199 #endif
216 200  
217 201 }
... ... @@ -219,26 +203,29 @@ initialize_toggles(void)
219 203 /*
220 204 * Called from system exit code to handle toggles.
221 205 */
222   -void
223   -shutdown_toggles(void)
  206 +void shutdown_toggles(H3270 *session, struct toggle *toggle)
224 207 {
225   -#if defined(X3270_TRACE) /*[*/
226   - /* Clean up the data stream trace monitor window. */
227   - if (toggled(DS_TRACE)) {
228   - appres.toggle[DS_TRACE].value = False;
229   - toggle_dsTrace(&appres.toggle[DS_TRACE], TT_FINAL);
  208 +#if defined(X3270_TRACE)
  209 + // Clean up the data stream trace monitor window.
  210 + if(toggle[DS_TRACE].value)
  211 + {
  212 + toggle[DS_TRACE].value = False;
  213 + toggle_dsTrace(&toggle[DS_TRACE], TT_FINAL);
230 214 }
231   - if (toggled(EVENT_TRACE)) {
232   - appres.toggle[EVENT_TRACE].value = False;
233   - toggle_dsTrace(&appres.toggle[EVENT_TRACE], TT_FINAL);
  215 +
  216 + if(toggle[EVENT_TRACE].value)
  217 + {
  218 + toggle[EVENT_TRACE].value = False;
  219 + toggle_dsTrace(&toggle[EVENT_TRACE], TT_FINAL);
234 220 }
235 221  
236   - /* Clean up the screen trace file. */
237   - if (toggled(SCREEN_TRACE)) {
238   - appres.toggle[SCREEN_TRACE].value = False;
239   - toggle_screenTrace(&appres.toggle[SCREEN_TRACE], TT_FINAL);
  222 + // Clean up the screen trace file.
  223 + if (toggle[SCREEN_TRACE].value)
  224 + {
  225 + toggle[SCREEN_TRACE].value = False;
  226 + toggle_screenTrace(&toggle[SCREEN_TRACE], TT_FINAL);
240 227 }
241   -#endif /*]*/
  228 +#endif
242 229 }
243 230  
244 231 LIB3270_EXPORT const char * get_3270_toggle_name(LIB3270_TOGGLE_ID ix)
... ...
latest/src/lib/togglesc.h
... ... @@ -25,3 +25,5 @@
25 25  
26 26 extern const char *toggle_names[N_TOGGLES];
27 27  
  28 + LIB3270_INTERNAL void initialize_toggles(H3270 *session, struct toggle *toggle);
  29 + LIB3270_INTERNAL void shutdown_toggles(H3270 *session, struct toggle *toggle);
... ...