Commit 3d16be9a32cd7dc2959e8838633299e4c75be68d
1 parent
6d7b2852
Exists in
master
and in
5 other branches
Incluindo novos métodos para limpeza de tela
Showing
9 changed files
with
163 additions
and
0 deletions
Show diff stats
src/include/pw3270/hllapi.h
| @@ -101,7 +101,12 @@ extern "C" { | @@ -101,7 +101,12 @@ extern "C" { | ||
| 101 | HLLAPI_API_CALL hllapi_pakey(WORD key); | 101 | HLLAPI_API_CALL hllapi_pakey(WORD key); |
| 102 | HLLAPI_API_CALL hllapi_setcursor(WORD key); | 102 | HLLAPI_API_CALL hllapi_setcursor(WORD key); |
| 103 | HLLAPI_API_CALL hllapi_getcursor(); | 103 | HLLAPI_API_CALL hllapi_getcursor(); |
| 104 | + | ||
| 105 | + HLLAPI_API_CALL hllapi_erase(void); | ||
| 104 | HLLAPI_API_CALL hllapi_erase_eof(void); | 106 | HLLAPI_API_CALL hllapi_erase_eof(void); |
| 107 | + HLLAPI_API_CALL hllapi_erase_eol(void); | ||
| 108 | + HLLAPI_API_CALL hllapi_erase_input(void); | ||
| 109 | + | ||
| 105 | HLLAPI_API_CALL hllapi_print(void); | 110 | HLLAPI_API_CALL hllapi_print(void); |
| 106 | 111 | ||
| 107 | HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR str, LPWORD length, LPWORD rc); | 112 | HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR str, LPWORD length, LPWORD rc); |
src/java/actions.cc
| @@ -72,6 +72,63 @@ JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1eof(JNIEnv *env, jobject obj) | @@ -72,6 +72,63 @@ JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1eof(JNIEnv *env, jobject obj) | ||
| 72 | 72 | ||
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | +JNIEXPORT jint JNICALL Java_pw3270_terminal_erase(JNIEnv *env, jobject obj) { | ||
| 76 | + | ||
| 77 | + jint rc = -1; | ||
| 78 | + | ||
| 79 | + try { | ||
| 80 | + | ||
| 81 | + rc = java::getHandle(env,obj)->erase(); | ||
| 82 | + | ||
| 83 | + } catch(std::exception &e) { | ||
| 84 | + | ||
| 85 | + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); | ||
| 86 | + return -1; | ||
| 87 | + | ||
| 88 | + } | ||
| 89 | + | ||
| 90 | + return rc; | ||
| 91 | + | ||
| 92 | +} | ||
| 93 | +JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1eol(JNIEnv *env, jobject obj) { | ||
| 94 | + | ||
| 95 | + jint rc = -1; | ||
| 96 | + | ||
| 97 | + try { | ||
| 98 | + | ||
| 99 | + rc = java::getHandle(env,obj)->erase_eol(); | ||
| 100 | + | ||
| 101 | + } catch(std::exception &e) { | ||
| 102 | + | ||
| 103 | + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); | ||
| 104 | + return -1; | ||
| 105 | + | ||
| 106 | + } | ||
| 107 | + | ||
| 108 | + return rc; | ||
| 109 | + | ||
| 110 | +} | ||
| 111 | + | ||
| 112 | +JNIEXPORT jint JNICALL Java_pw3270_terminal_erase_1input(JNIEnv *env, jobject obj) { | ||
| 113 | + | ||
| 114 | + jint rc = -1; | ||
| 115 | + | ||
| 116 | + try { | ||
| 117 | + | ||
| 118 | + rc = java::getHandle(env,obj)->erase_input(); | ||
| 119 | + | ||
| 120 | + } catch(std::exception &e) { | ||
| 121 | + | ||
| 122 | + env->ThrowNew(env->FindClass("java/lang/Exception"), e.what()); | ||
| 123 | + return -1; | ||
| 124 | + | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + return rc; | ||
| 128 | + | ||
| 129 | +} | ||
| 130 | + | ||
| 131 | + | ||
| 75 | JNIEXPORT jint JNICALL Java_pw3270_terminal_print(JNIEnv *env, jobject obj) { | 132 | JNIEXPORT jint JNICALL Java_pw3270_terminal_print(JNIEnv *env, jobject obj) { |
| 76 | 133 | ||
| 77 | jint rc = -1; | 134 | jint rc = -1; |
src/java/terminal.java
| @@ -201,6 +201,11 @@ public class terminal | @@ -201,6 +201,11 @@ public class terminal | ||
| 201 | */ | 201 | */ |
| 202 | public native int quit(); | 202 | public native int quit(); |
| 203 | 203 | ||
| 204 | + public native int erase(); | ||
| 205 | + public native int erase_eol(); | ||
| 206 | + public native int erase_input(); | ||
| 207 | + | ||
| 208 | + | ||
| 204 | /** | 209 | /** |
| 205 | * Erase from cursor position until the end of the field. | 210 | * Erase from cursor position until the end of the field. |
| 206 | * | 211 | * |
src/plugins/hllapi/calls.cc
| @@ -290,12 +290,31 @@ | @@ -290,12 +290,31 @@ | ||
| 290 | return HLLAPI_STATUS_SUCCESS; | 290 | return HLLAPI_STATUS_SUCCESS; |
| 291 | } | 291 | } |
| 292 | 292 | ||
| 293 | + HLLAPI_API_CALL hllapi_erase(void) | ||
| 294 | + { | ||
| 295 | + session::get_default()->erase(); | ||
| 296 | + return HLLAPI_STATUS_SUCCESS; | ||
| 297 | + } | ||
| 298 | + | ||
| 293 | HLLAPI_API_CALL hllapi_erase_eof(void) | 299 | HLLAPI_API_CALL hllapi_erase_eof(void) |
| 294 | { | 300 | { |
| 295 | session::get_default()->erase_eof(); | 301 | session::get_default()->erase_eof(); |
| 296 | return HLLAPI_STATUS_SUCCESS; | 302 | return HLLAPI_STATUS_SUCCESS; |
| 297 | } | 303 | } |
| 298 | 304 | ||
| 305 | + HLLAPI_API_CALL hllapi_erase_eol(void) | ||
| 306 | + { | ||
| 307 | + session::get_default()->erase_eol(); | ||
| 308 | + return HLLAPI_STATUS_SUCCESS; | ||
| 309 | + } | ||
| 310 | + | ||
| 311 | + HLLAPI_API_CALL hllapi_erase_input(void) | ||
| 312 | + { | ||
| 313 | + session::get_default()->erase_input(); | ||
| 314 | + return HLLAPI_STATUS_SUCCESS; | ||
| 315 | + } | ||
| 316 | + | ||
| 317 | + | ||
| 299 | HLLAPI_API_CALL hllapi_print(void) | 318 | HLLAPI_API_CALL hllapi_print(void) |
| 300 | { | 319 | { |
| 301 | return session::get_default()->print(); | 320 | return session::get_default()->print(); |
src/plugins/rx3270/rexx_methods.cc
| @@ -185,6 +185,39 @@ RexxMethod1(int, rx3270_method_enter, CSELF, sessionPtr) | @@ -185,6 +185,39 @@ RexxMethod1(int, rx3270_method_enter, CSELF, sessionPtr) | ||
| 185 | return hSession->enter(); | 185 | return hSession->enter(); |
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | +RexxMethod1(int, rx3270_method_erase, CSELF, sessionPtr) | ||
| 189 | +{ | ||
| 190 | + session *hSession = (session *) sessionPtr; | ||
| 191 | + if(!hSession) | ||
| 192 | + return -1; | ||
| 193 | + return hSession->erase(); | ||
| 194 | +} | ||
| 195 | + | ||
| 196 | +RexxMethod1(int, rx3270_method_erase_eof, CSELF, sessionPtr) | ||
| 197 | +{ | ||
| 198 | + session *hSession = (session *) sessionPtr; | ||
| 199 | + if(!hSession) | ||
| 200 | + return -1; | ||
| 201 | + return hSession->erase_eof(); | ||
| 202 | +} | ||
| 203 | + | ||
| 204 | +RexxMethod1(int, rx3270_method_erase_eol, CSELF, sessionPtr) | ||
| 205 | +{ | ||
| 206 | + session *hSession = (session *) sessionPtr; | ||
| 207 | + if(!hSession) | ||
| 208 | + return -1; | ||
| 209 | + return hSession->erase_eol(); | ||
| 210 | +} | ||
| 211 | + | ||
| 212 | +RexxMethod1(int, rx3270_method_erase_input, CSELF, sessionPtr) | ||
| 213 | +{ | ||
| 214 | + session *hSession = (session *) sessionPtr; | ||
| 215 | + if(!hSession) | ||
| 216 | + return -1; | ||
| 217 | + return hSession->erase_input(); | ||
| 218 | +} | ||
| 219 | + | ||
| 220 | + | ||
| 188 | RexxMethod2(int, rx3270_method_pfkey, CSELF, sessionPtr, int, key) | 221 | RexxMethod2(int, rx3270_method_pfkey, CSELF, sessionPtr, int, key) |
| 189 | { | 222 | { |
| 190 | session *hSession = (session *) sessionPtr; | 223 | session *hSession = (session *) sessionPtr; |
src/plugins/rx3270/rx3270.cls
| @@ -59,6 +59,11 @@ | @@ -59,6 +59,11 @@ | ||
| 59 | ::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pfkey" | 59 | ::METHOD PFKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pfkey" |
| 60 | ::METHOD PAKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pakey" | 60 | ::METHOD PAKEY EXTERNAL "LIBRARY rx3270 rx3270_method_pakey" |
| 61 | 61 | ||
| 62 | +::METHOD ERASE EXTERNAL "LIBRARY rx3270 rx3270_method_erase" | ||
| 63 | +::METHOD ERASEEOF EXTERNAL "LIBRARY rx3270 rx3270_method_erase_eof" | ||
| 64 | +::METHOD ERASEEOL EXTERNAL "LIBRARY rx3270 rx3270_method_erase_eol" | ||
| 65 | +::METHOD ERASEINPUT EXTERNAL "LIBRARY rx3270 rx3270_method_erase_input" | ||
| 66 | + | ||
| 62 | ::METHOD OPTION EXTERNAL "LIBRARY rx3270 rx3270_method_set_option" | 67 | ::METHOD OPTION EXTERNAL "LIBRARY rx3270 rx3270_method_set_option" |
| 63 | ::METHOD EVENTTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_event_trace" | 68 | ::METHOD EVENTTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_event_trace" |
| 64 | ::METHOD SCREENTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_screen_trace" | 69 | ::METHOD SCREENTRACE EXTERNAL "LIBRARY rx3270 rx3270_method_screen_trace" |
src/plugins/rx3270/rx3270.h
| @@ -88,6 +88,11 @@ | @@ -88,6 +88,11 @@ | ||
| 88 | REXX_TYPED_ROUTINE_PROTOTYPE(ebc2asc); | 88 | REXX_TYPED_ROUTINE_PROTOTYPE(ebc2asc); |
| 89 | REXX_TYPED_ROUTINE_PROTOTYPE(asc2ebc); | 89 | REXX_TYPED_ROUTINE_PROTOTYPE(asc2ebc); |
| 90 | 90 | ||
| 91 | + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270Erase); | ||
| 92 | + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270EraseEOF); | ||
| 93 | + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270EraseEOL); | ||
| 94 | + REXX_TYPED_ROUTINE_PROTOTYPE(rx3270EraseInput); | ||
| 95 | + | ||
| 91 | REXX_METHOD_PROTOTYPE(rx3270_method_version); | 96 | REXX_METHOD_PROTOTYPE(rx3270_method_version); |
| 92 | REXX_METHOD_PROTOTYPE(rx3270_method_revision); | 97 | REXX_METHOD_PROTOTYPE(rx3270_method_revision); |
| 93 | REXX_METHOD_PROTOTYPE(rx3270_method_init); | 98 | REXX_METHOD_PROTOTYPE(rx3270_method_init); |
| @@ -102,6 +107,10 @@ | @@ -102,6 +107,10 @@ | ||
| 102 | REXX_METHOD_PROTOTYPE(rx3270_method_get_cursor_addr); | 107 | REXX_METHOD_PROTOTYPE(rx3270_method_get_cursor_addr); |
| 103 | REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor_addr); | 108 | REXX_METHOD_PROTOTYPE(rx3270_method_set_cursor_addr); |
| 104 | REXX_METHOD_PROTOTYPE(rx3270_method_enter); | 109 | REXX_METHOD_PROTOTYPE(rx3270_method_enter); |
| 110 | + REXX_METHOD_PROTOTYPE(rx3270_method_erase); | ||
| 111 | + REXX_METHOD_PROTOTYPE(rx3270_method_erase_eof); | ||
| 112 | + REXX_METHOD_PROTOTYPE(rx3270_method_erase_eol); | ||
| 113 | + REXX_METHOD_PROTOTYPE(rx3270_method_erase_input); | ||
| 105 | REXX_METHOD_PROTOTYPE(rx3270_method_pfkey); | 114 | REXX_METHOD_PROTOTYPE(rx3270_method_pfkey); |
| 106 | REXX_METHOD_PROTOTYPE(rx3270_method_pakey); | 115 | REXX_METHOD_PROTOTYPE(rx3270_method_pakey); |
| 107 | REXX_METHOD_PROTOTYPE(rx3270_method_get_text); | 116 | REXX_METHOD_PROTOTYPE(rx3270_method_get_text); |
src/plugins/rx3270/rxapimain.cc
| @@ -113,6 +113,12 @@ RexxRoutineEntry rx3270_functions[] = | @@ -113,6 +113,12 @@ RexxRoutineEntry rx3270_functions[] = | ||
| 113 | REXX_TYPED_ROUTINE(rx3270queryStringAt, rx3270queryStringAt), | 113 | REXX_TYPED_ROUTINE(rx3270queryStringAt, rx3270queryStringAt), |
| 114 | REXX_TYPED_ROUTINE(rx3270SetStringAt, rx3270SetStringAt), | 114 | REXX_TYPED_ROUTINE(rx3270SetStringAt, rx3270SetStringAt), |
| 115 | REXX_TYPED_ROUTINE(rx3270CloseApplication, rx3270CloseApplication), | 115 | REXX_TYPED_ROUTINE(rx3270CloseApplication, rx3270CloseApplication), |
| 116 | + | ||
| 117 | + REXX_TYPED_ROUTINE(rx3270Erase, rx3270Erase), | ||
| 118 | + REXX_TYPED_ROUTINE(rx3270EraseEOF, rx3270EraseEOF), | ||
| 119 | + REXX_TYPED_ROUTINE(rx3270EraseEOL, rx3270EraseEOL), | ||
| 120 | + REXX_TYPED_ROUTINE(rx3270EraseInput, rx3270EraseInput), | ||
| 121 | + | ||
| 116 | REXX_TYPED_ROUTINE(ebc2asc, ebc2asc), | 122 | REXX_TYPED_ROUTINE(ebc2asc, ebc2asc), |
| 117 | REXX_TYPED_ROUTINE(asc2ebc, asc2ebc), | 123 | REXX_TYPED_ROUTINE(asc2ebc, asc2ebc), |
| 118 | 124 | ||
| @@ -138,6 +144,10 @@ RexxMethodEntry rx3270_methods[] = | @@ -138,6 +144,10 @@ RexxMethodEntry rx3270_methods[] = | ||
| 138 | REXX_METHOD(rx3270_method_set_cursor, rx3270_method_get_cursor_addr ), | 144 | REXX_METHOD(rx3270_method_set_cursor, rx3270_method_get_cursor_addr ), |
| 139 | REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor_addr ), | 145 | REXX_METHOD(rx3270_method_set_cursor, rx3270_method_set_cursor_addr ), |
| 140 | REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), | 146 | REXX_METHOD(rx3270_method_enter, rx3270_method_enter ), |
| 147 | + REXX_METHOD(rx3270_method_enter, rx3270_method_erase ), | ||
| 148 | + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eof ), | ||
| 149 | + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_eol ), | ||
| 150 | + REXX_METHOD(rx3270_method_enter, rx3270_method_erase_input ), | ||
| 141 | REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), | 151 | REXX_METHOD(rx3270_method_pfkey, rx3270_method_pfkey ), |
| 142 | REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), | 152 | REXX_METHOD(rx3270_method_pakey, rx3270_method_pakey ), |
| 143 | REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ), | 153 | REXX_METHOD(rx3270_method_get_text, rx3270_method_get_text ), |
src/plugins/rx3270/typed_routines.cc
| @@ -116,6 +116,26 @@ RexxRoutine0(int, rx3270SendENTERKey) | @@ -116,6 +116,26 @@ RexxRoutine0(int, rx3270SendENTERKey) | ||
| 116 | return session::get_default()->enter(); | 116 | return session::get_default()->enter(); |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | +RexxRoutine0(int, rx3270Erase) | ||
| 120 | +{ | ||
| 121 | + return session::get_default()->erase(); | ||
| 122 | +} | ||
| 123 | + | ||
| 124 | +RexxRoutine0(int, rx3270EraseEOF) | ||
| 125 | +{ | ||
| 126 | + return session::get_default()->erase_eof(); | ||
| 127 | +} | ||
| 128 | + | ||
| 129 | +RexxRoutine0(int, rx3270EraseEOL) | ||
| 130 | +{ | ||
| 131 | + return session::get_default()->erase_eol(); | ||
| 132 | +} | ||
| 133 | + | ||
| 134 | +RexxRoutine0(int, rx3270EraseInput) | ||
| 135 | +{ | ||
| 136 | + return session::get_default()->erase_input(); | ||
| 137 | +} | ||
| 138 | + | ||
| 119 | RexxRoutine1(int, rx3270SendPFKey, int, key) | 139 | RexxRoutine1(int, rx3270SendPFKey, int, key) |
| 120 | { | 140 | { |
| 121 | return session::get_default()->pfkey(key); | 141 | return session::get_default()->pfkey(key); |