Commit e2cef7b423511b4487ec309495b9bea05b0ed55b
1 parent
8e0eafe5
Exists in
master
and in
5 other branches
Implementando toggles no objeto rexx
Showing
4 changed files
with
93 additions
and
0 deletions
Show diff stats
src/plugins/rx3270/rexx_methods.cc
... | ... | @@ -188,3 +188,83 @@ RexxMethod4(int, rx3270_method_cmp_text_at, CSELF, sessionPtr, int, row, int, co |
188 | 188 | return rc; |
189 | 189 | } |
190 | 190 | |
191 | +RexxMethod2(int, rx3270_method_event_trace, CSELF, sessionPtr, int, flag) | |
192 | +{ | |
193 | + rx3270 *hSession = (rx3270 *) sessionPtr; | |
194 | + if(!hSession) | |
195 | + return -1; | |
196 | + hSession->set_toggle(LIB3270_TOGGLE_EVENT_TRACE,flag); | |
197 | + return 0; | |
198 | +} | |
199 | + | |
200 | +RexxMethod2(int, rx3270_method_screen_trace, CSELF, sessionPtr, int, flag) | |
201 | +{ | |
202 | + rx3270 *hSession = (rx3270 *) sessionPtr; | |
203 | + if(!hSession) | |
204 | + return -1; | |
205 | + hSession->set_toggle(LIB3270_TOGGLE_SCREEN_TRACE,flag); | |
206 | + return 0; | |
207 | + | |
208 | +} | |
209 | + | |
210 | +RexxMethod2(int, rx3270_method_data_trace, CSELF, sessionPtr, int, flag) | |
211 | +{ | |
212 | + rx3270 *hSession = (rx3270 *) sessionPtr; | |
213 | + if(!hSession) | |
214 | + return -1; | |
215 | + hSession->set_toggle(LIB3270_TOGGLE_DS_TRACE,flag); | |
216 | + return 0; | |
217 | +} | |
218 | + | |
219 | +RexxMethod3(int, rx3270_method_set_toggle, CSELF, sessionPtr, CSTRING, name, int, flag) | |
220 | +{ | |
221 | + static const struct _toggle_info | |
222 | + { | |
223 | + const char * name; | |
224 | + LIB3270_TOGGLE id; | |
225 | + } | |
226 | + toggle[LIB3270_TOGGLE_COUNT] = | |
227 | + { | |
228 | + { "monocase", LIB3270_TOGGLE_MONOCASE }, | |
229 | + { "cursorblink", LIB3270_TOGGLE_CURSOR_BLINK }, | |
230 | + { "showtiming", LIB3270_TOGGLE_SHOW_TIMING }, | |
231 | + { "cursorpos", LIB3270_TOGGLE_CURSOR_POS }, | |
232 | + { "dstrace", LIB3270_TOGGLE_DS_TRACE }, | |
233 | + { "linewrap", LIB3270_TOGGLE_LINE_WRAP }, | |
234 | + { "blankfill", LIB3270_TOGGLE_BLANK_FILL }, | |
235 | + { "screentrace", LIB3270_TOGGLE_SCREEN_TRACE }, | |
236 | + { "eventtrace", LIB3270_TOGGLE_EVENT_TRACE }, | |
237 | + { "marginedpaste", LIB3270_TOGGLE_MARGINED_PASTE }, | |
238 | + { "rectselect", LIB3270_TOGGLE_RECTANGLE_SELECT }, | |
239 | + { "crosshair", LIB3270_TOGGLE_CROSSHAIR }, | |
240 | + { "fullscreen", LIB3270_TOGGLE_FULL_SCREEN }, | |
241 | + { "reconnect", LIB3270_TOGGLE_RECONNECT }, | |
242 | + { "insert", LIB3270_TOGGLE_INSERT }, | |
243 | + { "smartpaste", LIB3270_TOGGLE_SMART_PASTE }, | |
244 | + { "bold", LIB3270_TOGGLE_BOLD }, | |
245 | + { "keepselected", LIB3270_TOGGLE_KEEP_SELECTED }, | |
246 | + { "underline", LIB3270_TOGGLE_UNDERLINE }, | |
247 | + { "autoconnect", LIB3270_TOGGLE_CONNECT_ON_STARTUP }, | |
248 | + { "kpalternative", LIB3270_TOGGLE_KP_ALTERNATIVE }, | |
249 | + { "beep", LIB3270_TOGGLE_BEEP }, | |
250 | + { "fieldattr", LIB3270_TOGGLE_VIEW_FIELD }, | |
251 | + { "altscreen", LIB3270_TOGGLE_ALTSCREEN } | |
252 | + }; | |
253 | + | |
254 | + rx3270 *hSession = (rx3270 *) sessionPtr; | |
255 | + if(hSession) | |
256 | + { | |
257 | + for(int f = 0; f < LIB3270_TOGGLE_COUNT; f++) | |
258 | + { | |
259 | + if(!strcasecmp(name,toggle[f].name)) | |
260 | + { | |
261 | + hSession->set_toggle(toggle[f].id,flag); | |
262 | + return 0; | |
263 | + } | |
264 | + } | |
265 | + return ENOENT; | |
266 | + } | |
267 | + return -1; | |
268 | +} | |
269 | + | |
270 | + | ... | ... |
src/plugins/rx3270/rx3270.cls
... | ... | @@ -53,6 +53,11 @@ |
53 | 53 | ::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pfkey" |
54 | 54 | ::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pakey" |
55 | 55 | |
56 | +::METHOD OPTION EXTERNAL "LIBRARY rx3270 rx3270_method_set_toggle" | |
57 | +::METHOD EVENTTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_event_trace" | |
58 | +::METHOD SCREENTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_screen_trace" | |
59 | +::METHOD DSTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_ds_trace" | |
60 | + | |
56 | 61 | ::METHOD GETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_get_text_at" |
57 | 62 | ::METHOD SETTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_set_text_at" |
58 | 63 | ::METHOD CMPTEXTAT EXTERNAL "LIBRARY rx3270 rx3270_method_cmp_text_at" | ... | ... |
src/plugins/rx3270/rx3270.h
... | ... | @@ -85,6 +85,10 @@ |
85 | 85 | REXX_METHOD_PROTOTYPE(rx3270_method_get_text_at); |
86 | 86 | REXX_METHOD_PROTOTYPE(rx3270_method_set_text_at); |
87 | 87 | REXX_METHOD_PROTOTYPE(rx3270_method_cmp_text_at); |
88 | + REXX_METHOD_PROTOTYPE(rx3270_method_event_trace); | |
89 | + REXX_METHOD_PROTOTYPE(rx3270_method_screen_trace); | |
90 | + REXX_METHOD_PROTOTYPE(rx3270_method_data_trace); | |
91 | + REXX_METHOD_PROTOTYPE(rx3270_method_set_toggle); | |
88 | 92 | |
89 | 93 | /*---[ Globals ]---------------------------------------------------------------------------------------------*/ |
90 | 94 | ... | ... |
src/plugins/rx3270/rxapimain.cc
... | ... | @@ -126,6 +126,10 @@ RexxMethodEntry rx3270_methods[] = |
126 | 126 | REXX_METHOD(rx3270_method_get_text_at, rx3270_method_get_text_at ), |
127 | 127 | REXX_METHOD(rx3270_method_set_text_at, rx3270_method_set_text_at ), |
128 | 128 | REXX_METHOD(rx3270_method_cmp_text_at, rx3270_method_cmp_text_at ), |
129 | + REXX_METHOD(rx3270_method_event_trace, rx3270_method_event_trace ), | |
130 | + REXX_METHOD(rx3270_method_screen_trace, rx3270_method_screen_trace ), | |
131 | + REXX_METHOD(rx3270_method_data_trace, rx3270_method_data_trace ), | |
132 | + REXX_METHOD(rx3270_method_set_toggle, rx3270_method_set_toggle ), | |
129 | 133 | |
130 | 134 | REXX_LAST_METHOD() |
131 | 135 | }; | ... | ... |