Commit b9f0d78eeed5c1df18aa6bedb984cfa6df46e212
1 parent
ef0594fa
Exists in
master
and in
5 other branches
Atualizando classe de referência
Showing
9 changed files
with
271 additions
and
191 deletions
Show diff stats
src/classlib/Makefile
| ... | ... | @@ -57,7 +57,7 @@ DEBUG_CFLAGS=-DDEBUG=1 -g -Wall |
| 57 | 57 | CXX=g++ |
| 58 | 58 | LD=g++ |
| 59 | 59 | |
| 60 | -DEPENDS=*.h ../include/*.h ../include/lib3270/*.h Makefile | |
| 60 | +DEPENDS=../include/*.h ../include/lib3270/*.h ../include/pw3270/*.h Makefile | |
| 61 | 61 | |
| 62 | 62 | $(OBJDBG)/%.o: %.cc $(DEPENDS) |
| 63 | 63 | @echo " CC `basename $@`" | ... | ... |
src/classlib/exception.cc
src/classlib/local.cc
| ... | ... | @@ -46,7 +46,7 @@ |
| 46 | 46 | |
| 47 | 47 | #endif |
| 48 | 48 | |
| 49 | -#include "pw3270class.h" | |
| 49 | +#include <pw3270/class.h> | |
| 50 | 50 | #include <lib3270/log.h> |
| 51 | 51 | #include <lib3270/popup.h> |
| 52 | 52 | #include <string.h> |
| ... | ... | @@ -466,6 +466,20 @@ |
| 466 | 466 | return new string(""); |
| 467 | 467 | } |
| 468 | 468 | |
| 469 | + int set_cursor_position(int row, int col) | |
| 470 | + { | |
| 471 | + return _set_cursor_position(hSession,row,col); | |
| 472 | + } | |
| 473 | + | |
| 474 | + int set_cursor_addr(int addr) | |
| 475 | + { | |
| 476 | + return _set_cursor_addr(hSession,addr); | |
| 477 | + } | |
| 478 | + | |
| 479 | + int get_cursor_addr(void) | |
| 480 | + { | |
| 481 | + return _get_cursor_addr(hSession); | |
| 482 | + } | |
| 469 | 483 | |
| 470 | 484 | }; |
| 471 | 485 | ... | ... |
src/classlib/pw3270class.h
| ... | ... | @@ -1,164 +0,0 @@ |
| 1 | -/* | |
| 2 | - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 3 | - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 4 | - * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 5 | - * | |
| 6 | - * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 7 | - * | |
| 8 | - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 9 | - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 10 | - * Free Software Foundation. | |
| 11 | - * | |
| 12 | - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 13 | - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 14 | - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 15 | - * obter mais detalhes. | |
| 16 | - * | |
| 17 | - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 18 | - * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | |
| 19 | - * Place, Suite 330, Boston, MA, 02111-1307, USA | |
| 20 | - * | |
| 21 | - * Este programa está nomeado como pw3270class.c e possui - linhas de código. | |
| 22 | - * | |
| 23 | - * Contatos: | |
| 24 | - * | |
| 25 | - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 26 | - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 27 | - * | |
| 28 | - */ | |
| 29 | - | |
| 30 | -#ifndef PW3270_CLASS_H_INCLUDED | |
| 31 | - | |
| 32 | - #define PW3270_CLASS_H_INCLUDED 1 | |
| 33 | - | |
| 34 | - #ifdef WIN32 | |
| 35 | - #define SYSTEM_CHARSET "CP1252" | |
| 36 | - #else | |
| 37 | - #define SYSTEM_CHARSET "UTF-8" | |
| 38 | - #endif // WIN32 | |
| 39 | - | |
| 40 | - #include <exception> | |
| 41 | - #include <lib3270/config.h> | |
| 42 | - #include <lib3270.h> | |
| 43 | - | |
| 44 | - #ifdef HAVE_ICONV | |
| 45 | - #include <iconv.h> | |
| 46 | - #endif // HAVE_ICONV | |
| 47 | - | |
| 48 | - #include <string> | |
| 49 | - #include <stdarg.h> | |
| 50 | - #include <lib3270.h> | |
| 51 | - | |
| 52 | - namespace pw3270 | |
| 53 | - { | |
| 54 | - using namespace std; | |
| 55 | - | |
| 56 | - class exception : public std::exception | |
| 57 | - { | |
| 58 | - public: | |
| 59 | - exception(int code, const char *fmt, ...); | |
| 60 | - exception(const char *fmt, ...); | |
| 61 | - | |
| 62 | - virtual const char * what() const throw(); | |
| 63 | - | |
| 64 | - private: | |
| 65 | - int code; | |
| 66 | - char msg[4096]; | |
| 67 | - | |
| 68 | - }; | |
| 69 | - | |
| 70 | - class session | |
| 71 | - { | |
| 72 | - public: | |
| 73 | - | |
| 74 | - session(); | |
| 75 | - virtual ~session(); | |
| 76 | - | |
| 77 | - // Factory methods and settings | |
| 78 | - static session * create(const char *name = 0); | |
| 79 | - static session * start(const char *name = 0); | |
| 80 | - static session * get_default(void); | |
| 81 | - static void set_plugin(session * (*factory)(const char *name)); | |
| 82 | - | |
| 83 | - // Object settings | |
| 84 | - void set_charset(const char *charset); | |
| 85 | - | |
| 86 | - // Log management | |
| 87 | - void log(const char *fmt, ...); | |
| 88 | - void logva(const char *fmt, va_list args); | |
| 89 | - | |
| 90 | - // 3270 methods | |
| 91 | - virtual string get_version(void); | |
| 92 | - virtual string get_revision(void); | |
| 93 | - | |
| 94 | - virtual bool is_connected(void) = 0; | |
| 95 | - virtual bool is_ready(void) = 0; | |
| 96 | - | |
| 97 | - virtual LIB3270_CSTATE get_cstate(void) = 0; | |
| 98 | - | |
| 99 | - virtual int connect(const char *uri, bool wait = true) = 0; | |
| 100 | - virtual int disconnect(void) = 0; | |
| 101 | - | |
| 102 | - virtual int wait_for_ready(int seconds) = 0; | |
| 103 | - virtual int wait(int seconds) = 0; | |
| 104 | - virtual int iterate(bool wait = true) = 0; | |
| 105 | - | |
| 106 | - virtual string * get_text_at(int row, int col, size_t sz) = 0; | |
| 107 | - virtual int set_text_at(int row, int col, const char *str) = 0; | |
| 108 | - virtual string * get_text(int baddr, size_t len) = 0; | |
| 109 | - virtual int cmp_text_at(int row, int col, const char *text) = 0; | |
| 110 | - virtual int wait_for_text_at(int row, int col, const char *key, int timeout); | |
| 111 | - | |
| 112 | -// virtual int set_cursor_position(int row, int col) = 0; | |
| 113 | -// virtual int set_cursor_addr(int addr) = 0; | |
| 114 | -// virtual int get_cursor_addr(void) = 0; | |
| 115 | - | |
| 116 | -// virtual int set_toggle(LIB3270_TOGGLE ix, bool value) = 0; | |
| 117 | - | |
| 118 | -// virtual int enter(void) = 0; | |
| 119 | -// virtual int pfkey(int key) = 0; | |
| 120 | -// virtual int pakey(int key) = 0; | |
| 121 | - | |
| 122 | -// virtual int emulate_input(const char *str) = 0; | |
| 123 | - | |
| 124 | -// virtual int get_field_start(int baddr = -1) = 0; | |
| 125 | -// virtual int get_field_len(int baddr = -1) = 0; | |
| 126 | -// virtual int get_next_unprotected(int baddr = -1) = 0; | |
| 127 | - | |
| 128 | -// virtual int set_copy(const char *text); | |
| 129 | -// virtual char * get_copy(void); | |
| 130 | - | |
| 131 | -// virtual char * get_clipboard(void); | |
| 132 | -// virtual int set_clipboard(const char *text); | |
| 133 | - | |
| 134 | -// virtual int quit(void) = 0; | |
| 135 | - | |
| 136 | - // Dialogs | |
| 137 | -// virtual int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); | |
| 138 | -// virtual char * file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); | |
| 139 | - | |
| 140 | - private: | |
| 141 | - | |
| 142 | - session * prev; | |
| 143 | - session * next; | |
| 144 | - | |
| 145 | - static session * first; | |
| 146 | - static session * last; | |
| 147 | - | |
| 148 | - static session * (*factory)(const char *name); | |
| 149 | - | |
| 150 | - static session * create_remote(const char *name); | |
| 151 | - static session * create_local(void); | |
| 152 | - | |
| 153 | -#ifdef HAVE_ICONV | |
| 154 | - iconv_t conv2Local; | |
| 155 | - iconv_t conv2Host; | |
| 156 | -#endif | |
| 157 | - | |
| 158 | - }; | |
| 159 | - | |
| 160 | - | |
| 161 | - } | |
| 162 | - | |
| 163 | - | |
| 164 | -#endif // PW3270_CLASS_H_INCLUDED |
src/classlib/remote.cc
| ... | ... | @@ -43,7 +43,7 @@ |
| 43 | 43 | #include <pw3270/ipcpackets.h> |
| 44 | 44 | #endif // WIN32 |
| 45 | 45 | |
| 46 | - #include "pw3270class.h" | |
| 46 | + #include <pw3270/class.h> | |
| 47 | 47 | #include <lib3270/log.h> |
| 48 | 48 | |
| 49 | 49 | #if defined(HAVE_DBUS) |
| ... | ... | @@ -63,6 +63,17 @@ |
| 63 | 63 | |
| 64 | 64 | HANDLE hPipe; |
| 65 | 65 | |
| 66 | + int query_intval(HLLAPI_PACKET id) | |
| 67 | + { | |
| 68 | + struct hllapi_packet_query query = { id }; | |
| 69 | + struct hllapi_packet_result response; | |
| 70 | + DWORD cbSize = sizeof(query); | |
| 71 | + if(TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL)) | |
| 72 | + return response.rc; | |
| 73 | + | |
| 74 | + throw exception("Error %d in TransactNamedPipe",GetLastError()); | |
| 75 | + } | |
| 76 | + | |
| 66 | 77 | #elif defined(HAVE_DBUS) |
| 67 | 78 | |
| 68 | 79 | DBusConnection * conn; |
| ... | ... | @@ -390,11 +401,7 @@ |
| 390 | 401 | { |
| 391 | 402 | #if defined(WIN32) |
| 392 | 403 | |
| 393 | - static const struct hllapi_packet_query query = { HLLAPI_PACKET_IS_CONNECTED }; | |
| 394 | - struct hllapi_packet_result response; | |
| 395 | - DWORD cbSize = sizeof(query); | |
| 396 | - TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | |
| 397 | - return response.rc != 0; | |
| 404 | + return query_intval(HLLAPI_PACKET_IS_CONNECTED) != 0; | |
| 398 | 405 | |
| 399 | 406 | #elif defined(HAVE_DBUS) |
| 400 | 407 | |
| ... | ... | @@ -409,11 +416,7 @@ |
| 409 | 416 | { |
| 410 | 417 | #if defined(WIN32) |
| 411 | 418 | |
| 412 | - static const struct hllapi_packet_query query = { HLLAPI_PACKET_GET_CSTATE }; | |
| 413 | - struct hllapi_packet_result response; | |
| 414 | - DWORD cbSize = sizeof(query); | |
| 415 | - TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | |
| 416 | - return (LIB3270_CSTATE) response.rc; | |
| 419 | + return (LIB3270_CSTATE) query_intval(HLLAPI_PACKET_GET_CSTATE); | |
| 417 | 420 | |
| 418 | 421 | #elif defined(HAVE_DBUS) |
| 419 | 422 | |
| ... | ... | @@ -531,11 +534,7 @@ |
| 531 | 534 | { |
| 532 | 535 | #if defined(WIN32) |
| 533 | 536 | |
| 534 | - static const struct hllapi_packet_query query = { HLLAPI_PACKET_IS_READY }; | |
| 535 | - struct hllapi_packet_result response; | |
| 536 | - DWORD cbSize = sizeof(query); | |
| 537 | - TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | |
| 538 | - return response.rc != 0; | |
| 537 | + return query_intval(HLLAPI_PACKET_IS_READY) != 0; | |
| 539 | 538 | |
| 540 | 539 | #elif defined(HAVE_DBUS) |
| 541 | 540 | |
| ... | ... | @@ -551,11 +550,7 @@ |
| 551 | 550 | { |
| 552 | 551 | #if defined(WIN32) |
| 553 | 552 | |
| 554 | - static const struct hllapi_packet_query query = { HLLAPI_PACKET_DISCONNECT }; | |
| 555 | - struct hllapi_packet_result response; | |
| 556 | - DWORD cbSize = sizeof(query); | |
| 557 | - TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | |
| 558 | - return 0; | |
| 553 | + return query_intval(HLLAPI_PACKET_DISCONNECT); | |
| 559 | 554 | |
| 560 | 555 | #elif defined(HAVE_DBUS) |
| 561 | 556 | |
| ... | ... | @@ -776,6 +771,77 @@ |
| 776 | 771 | } |
| 777 | 772 | |
| 778 | 773 | |
| 774 | + int set_cursor_position(int row, int col) | |
| 775 | + { | |
| 776 | +#if defined(WIN32) | |
| 777 | + | |
| 778 | + struct hllapi_packet_cursor query = { HLLAPI_PACKET_SET_CURSOR_POSITION, (unsigned short) row, (unsigned short) col }; | |
| 779 | + struct hllapi_packet_result response; | |
| 780 | + DWORD cbSize = sizeof(query); | |
| 781 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | |
| 782 | + return response.rc != 0; | |
| 783 | + | |
| 784 | +#elif defined(HAVE_DBUS) | |
| 785 | + | |
| 786 | + dbus_int32_t r = (dbus_int32_t) row; | |
| 787 | + dbus_int32_t c = (dbus_int32_t) col; | |
| 788 | + | |
| 789 | + DBusMessage * msg = create_message("setCursorAt"); | |
| 790 | + if(msg) | |
| 791 | + { | |
| 792 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &r, DBUS_TYPE_INT32, &c, DBUS_TYPE_INVALID); | |
| 793 | + return get_intval(call(msg)); | |
| 794 | + } | |
| 795 | + | |
| 796 | +#endif | |
| 797 | + | |
| 798 | + return -1; | |
| 799 | + } | |
| 800 | + | |
| 801 | + int set_cursor_addr(int addr) | |
| 802 | + { | |
| 803 | +#if defined(WIN32) | |
| 804 | + | |
| 805 | + struct hllapi_packet_addr query = { HLLAPI_PACKET_SET_CURSOR, (unsigned short) addr }; | |
| 806 | + struct hllapi_packet_result response; | |
| 807 | + DWORD cbSize = sizeof(query); | |
| 808 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | |
| 809 | + return response.rc; | |
| 810 | + | |
| 811 | +#elif defined(HAVE_DBUS) | |
| 812 | + | |
| 813 | + dbus_int32_t k = (dbus_int32_t) addr; | |
| 814 | + | |
| 815 | + DBusMessage * msg = create_message("setCursorAddress"); | |
| 816 | + if(msg) | |
| 817 | + { | |
| 818 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | |
| 819 | + return get_intval(call(msg)); | |
| 820 | + } | |
| 821 | + | |
| 822 | +#endif | |
| 823 | + | |
| 824 | + return -1; | |
| 825 | + } | |
| 826 | + | |
| 827 | + int get_cursor_addr(void) | |
| 828 | + { | |
| 829 | +#if defined(WIN32) | |
| 830 | + | |
| 831 | + return query_intval(HLLAPI_PACKET_GET_CURSOR); | |
| 832 | + | |
| 833 | +#elif defined(HAVE_DBUS) | |
| 834 | + | |
| 835 | + return query_intval("getCursorAddress"); | |
| 836 | + | |
| 837 | +#else | |
| 838 | + | |
| 839 | + return -1; | |
| 840 | + | |
| 841 | +#endif | |
| 842 | + } | |
| 843 | + | |
| 844 | + | |
| 779 | 845 | }; |
| 780 | 846 | |
| 781 | 847 | session * session::create_remote(const char *session) | ... | ... |
src/classlib/session.cc
src/classlib/testprogram.cc
| ... | ... | @@ -0,0 +1,164 @@ |
| 1 | +/* | |
| 2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 5 | + * | |
| 6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 7 | + * | |
| 8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 10 | + * Free Software Foundation. | |
| 11 | + * | |
| 12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 15 | + * obter mais detalhes. | |
| 16 | + * | |
| 17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple | |
| 19 | + * Place, Suite 330, Boston, MA, 02111-1307, USA | |
| 20 | + * | |
| 21 | + * Este programa está nomeado como pw3270class.c e possui - linhas de código. | |
| 22 | + * | |
| 23 | + * Contatos: | |
| 24 | + * | |
| 25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 27 | + * | |
| 28 | + */ | |
| 29 | + | |
| 30 | +#ifndef PW3270_CLASS_H_INCLUDED | |
| 31 | + | |
| 32 | + #define PW3270_CLASS_H_INCLUDED 1 | |
| 33 | + | |
| 34 | + #ifdef WIN32 | |
| 35 | + #define SYSTEM_CHARSET "CP1252" | |
| 36 | + #else | |
| 37 | + #define SYSTEM_CHARSET "UTF-8" | |
| 38 | + #endif // WIN32 | |
| 39 | + | |
| 40 | + #include <exception> | |
| 41 | + #include <lib3270/config.h> | |
| 42 | + #include <lib3270.h> | |
| 43 | + | |
| 44 | + #ifdef HAVE_ICONV | |
| 45 | + #include <iconv.h> | |
| 46 | + #endif // HAVE_ICONV | |
| 47 | + | |
| 48 | + #include <string> | |
| 49 | + #include <stdarg.h> | |
| 50 | + #include <lib3270.h> | |
| 51 | + | |
| 52 | + namespace pw3270 | |
| 53 | + { | |
| 54 | + using namespace std; | |
| 55 | + | |
| 56 | + class exception : public std::exception | |
| 57 | + { | |
| 58 | + public: | |
| 59 | + exception(int code, const char *fmt, ...); | |
| 60 | + exception(const char *fmt, ...); | |
| 61 | + | |
| 62 | + virtual const char * what() const throw(); | |
| 63 | + | |
| 64 | + private: | |
| 65 | + int code; | |
| 66 | + char msg[4096]; | |
| 67 | + | |
| 68 | + }; | |
| 69 | + | |
| 70 | + class session | |
| 71 | + { | |
| 72 | + public: | |
| 73 | + | |
| 74 | + session(); | |
| 75 | + virtual ~session(); | |
| 76 | + | |
| 77 | + // Factory methods and settings | |
| 78 | + static session * create(const char *name = 0); | |
| 79 | + static session * start(const char *name = 0); | |
| 80 | + static session * get_default(void); | |
| 81 | + static void set_plugin(session * (*factory)(const char *name)); | |
| 82 | + | |
| 83 | + // Object settings | |
| 84 | + void set_charset(const char *charset); | |
| 85 | + | |
| 86 | + // Log management | |
| 87 | + void log(const char *fmt, ...); | |
| 88 | + void logva(const char *fmt, va_list args); | |
| 89 | + | |
| 90 | + // 3270 methods | |
| 91 | + virtual string get_version(void); | |
| 92 | + virtual string get_revision(void); | |
| 93 | + | |
| 94 | + virtual bool is_connected(void) = 0; | |
| 95 | + virtual bool is_ready(void) = 0; | |
| 96 | + | |
| 97 | + virtual LIB3270_CSTATE get_cstate(void) = 0; | |
| 98 | + | |
| 99 | + virtual int connect(const char *uri, bool wait = true) = 0; | |
| 100 | + virtual int disconnect(void) = 0; | |
| 101 | + | |
| 102 | + virtual int wait_for_ready(int seconds) = 0; | |
| 103 | + virtual int wait(int seconds) = 0; | |
| 104 | + virtual int iterate(bool wait = true) = 0; | |
| 105 | + | |
| 106 | + virtual string * get_text_at(int row, int col, size_t sz) = 0; | |
| 107 | + virtual int set_text_at(int row, int col, const char *str) = 0; | |
| 108 | + virtual string * get_text(int baddr, size_t len) = 0; | |
| 109 | + virtual int cmp_text_at(int row, int col, const char *text) = 0; | |
| 110 | + virtual int wait_for_text_at(int row, int col, const char *key, int timeout); | |
| 111 | + | |
| 112 | + virtual int set_cursor_position(int row, int col) = 0; | |
| 113 | + virtual int set_cursor_addr(int addr) = 0; | |
| 114 | + virtual int get_cursor_addr(void) = 0; | |
| 115 | + | |
| 116 | +// virtual int set_toggle(LIB3270_TOGGLE ix, bool value) = 0; | |
| 117 | + | |
| 118 | +// virtual int enter(void) = 0; | |
| 119 | +// virtual int pfkey(int key) = 0; | |
| 120 | +// virtual int pakey(int key) = 0; | |
| 121 | + | |
| 122 | +// virtual int emulate_input(const char *str) = 0; | |
| 123 | + | |
| 124 | +// virtual int get_field_start(int baddr = -1) = 0; | |
| 125 | +// virtual int get_field_len(int baddr = -1) = 0; | |
| 126 | +// virtual int get_next_unprotected(int baddr = -1) = 0; | |
| 127 | + | |
| 128 | +// virtual int set_copy(const char *text); | |
| 129 | +// virtual char * get_copy(void); | |
| 130 | + | |
| 131 | +// virtual char * get_clipboard(void); | |
| 132 | +// virtual int set_clipboard(const char *text); | |
| 133 | + | |
| 134 | +// virtual int quit(void) = 0; | |
| 135 | + | |
| 136 | + // Dialogs | |
| 137 | +// virtual int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); | |
| 138 | +// virtual char * file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); | |
| 139 | + | |
| 140 | + private: | |
| 141 | + | |
| 142 | + session * prev; | |
| 143 | + session * next; | |
| 144 | + | |
| 145 | + static session * first; | |
| 146 | + static session * last; | |
| 147 | + | |
| 148 | + static session * (*factory)(const char *name); | |
| 149 | + | |
| 150 | + static session * create_remote(const char *name); | |
| 151 | + static session * create_local(void); | |
| 152 | + | |
| 153 | +#ifdef HAVE_ICONV | |
| 154 | + iconv_t conv2Local; | |
| 155 | + iconv_t conv2Host; | |
| 156 | +#endif | |
| 157 | + | |
| 158 | + }; | |
| 159 | + | |
| 160 | + | |
| 161 | + } | |
| 162 | + | |
| 163 | + | |
| 164 | +#endif // PW3270_CLASS_H_INCLUDED | ... | ... |
src/plugins/rx3270/remote.cc
| ... | ... | @@ -1132,7 +1132,7 @@ int remote::set_cursor_addr(int addr) |
| 1132 | 1132 | |
| 1133 | 1133 | if(hPipe != INVALID_HANDLE_VALUE) |
| 1134 | 1134 | { |
| 1135 | - struct hllapi_packet_addr query = { HLLAPI_PACKET_FIELD_LEN, (unsigned short) addr }; | |
| 1135 | + struct hllapi_packet_addr query = { HLLAPI_PACKET_SET_CURSOR, (unsigned short) addr }; | |
| 1136 | 1136 | struct hllapi_packet_result response; |
| 1137 | 1137 | DWORD cbSize = sizeof(query); |
| 1138 | 1138 | TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ... | ... |