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,7 +57,7 @@ DEBUG_CFLAGS=-DDEBUG=1 -g -Wall | ||
57 | CXX=g++ | 57 | CXX=g++ |
58 | LD=g++ | 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 | $(OBJDBG)/%.o: %.cc $(DEPENDS) | 62 | $(OBJDBG)/%.o: %.cc $(DEPENDS) |
63 | @echo " CC `basename $@`" | 63 | @echo " CC `basename $@`" |
src/classlib/exception.cc
@@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
30 | #include <stdarg.h> | 30 | #include <stdarg.h> |
31 | #include <stdio.h> | 31 | #include <stdio.h> |
32 | 32 | ||
33 | - #include "pw3270class.h" | 33 | + #include <pw3270/class.h> |
34 | 34 | ||
35 | /*--[ Implement ]--------------------------------------------------------------------------------------------------*/ | 35 | /*--[ Implement ]--------------------------------------------------------------------------------------------------*/ |
36 | 36 |
src/classlib/local.cc
@@ -46,7 +46,7 @@ | @@ -46,7 +46,7 @@ | ||
46 | 46 | ||
47 | #endif | 47 | #endif |
48 | 48 | ||
49 | -#include "pw3270class.h" | 49 | +#include <pw3270/class.h> |
50 | #include <lib3270/log.h> | 50 | #include <lib3270/log.h> |
51 | #include <lib3270/popup.h> | 51 | #include <lib3270/popup.h> |
52 | #include <string.h> | 52 | #include <string.h> |
@@ -466,6 +466,20 @@ | @@ -466,6 +466,20 @@ | ||
466 | return new string(""); | 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,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,7 +43,7 @@ | ||
43 | #include <pw3270/ipcpackets.h> | 43 | #include <pw3270/ipcpackets.h> |
44 | #endif // WIN32 | 44 | #endif // WIN32 |
45 | 45 | ||
46 | - #include "pw3270class.h" | 46 | + #include <pw3270/class.h> |
47 | #include <lib3270/log.h> | 47 | #include <lib3270/log.h> |
48 | 48 | ||
49 | #if defined(HAVE_DBUS) | 49 | #if defined(HAVE_DBUS) |
@@ -63,6 +63,17 @@ | @@ -63,6 +63,17 @@ | ||
63 | 63 | ||
64 | HANDLE hPipe; | 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 | #elif defined(HAVE_DBUS) | 77 | #elif defined(HAVE_DBUS) |
67 | 78 | ||
68 | DBusConnection * conn; | 79 | DBusConnection * conn; |
@@ -390,11 +401,7 @@ | @@ -390,11 +401,7 @@ | ||
390 | { | 401 | { |
391 | #if defined(WIN32) | 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 | #elif defined(HAVE_DBUS) | 406 | #elif defined(HAVE_DBUS) |
400 | 407 | ||
@@ -409,11 +416,7 @@ | @@ -409,11 +416,7 @@ | ||
409 | { | 416 | { |
410 | #if defined(WIN32) | 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 | #elif defined(HAVE_DBUS) | 421 | #elif defined(HAVE_DBUS) |
419 | 422 | ||
@@ -531,11 +534,7 @@ | @@ -531,11 +534,7 @@ | ||
531 | { | 534 | { |
532 | #if defined(WIN32) | 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 | #elif defined(HAVE_DBUS) | 539 | #elif defined(HAVE_DBUS) |
541 | 540 | ||
@@ -551,11 +550,7 @@ | @@ -551,11 +550,7 @@ | ||
551 | { | 550 | { |
552 | #if defined(WIN32) | 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 | #elif defined(HAVE_DBUS) | 555 | #elif defined(HAVE_DBUS) |
561 | 556 | ||
@@ -776,6 +771,77 @@ | @@ -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 | session * session::create_remote(const char *session) | 847 | session * session::create_remote(const char *session) |
src/classlib/session.cc
src/classlib/testprogram.cc
@@ -0,0 +1,164 @@ | @@ -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,7 +1132,7 @@ int remote::set_cursor_addr(int addr) | ||
1132 | 1132 | ||
1133 | if(hPipe != INVALID_HANDLE_VALUE) | 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 | struct hllapi_packet_result response; | 1136 | struct hllapi_packet_result response; |
1137 | DWORD cbSize = sizeof(query); | 1137 | DWORD cbSize = sizeof(query); |
1138 | TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | 1138 | TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); |