Commit d851a9708b84f4a130c1b8ed3fffb50bec19e7b7
1 parent
71c1ea6a
Exists in
master
and in
5 other branches
Finalizando classe de apoio para extensões
Showing
6 changed files
with
405 additions
and
18 deletions
Show diff stats
src/classlib/Makefile.in
@@ -48,7 +48,7 @@ LN_S=@LN_S@ | @@ -48,7 +48,7 @@ LN_S=@LN_S@ | ||
48 | 48 | ||
49 | #---[ Flags ]------------------------------------------------------------------ | 49 | #---[ Flags ]------------------------------------------------------------------ |
50 | 50 | ||
51 | -CFLAGS=@CFLAGS@ @DBUS_CFLAGS@ -I../include | 51 | +CFLAGS=@CFLAGS@ @DBUS_CFLAGS@ @GTK_CFLAGS@ -I../include |
52 | LIBS=@LIBS@ @LIBICONV@ @DBUS_LIBS@ | 52 | LIBS=@LIBS@ @LIBICONV@ @DBUS_LIBS@ |
53 | 53 | ||
54 | DEBUG_CFLAGS=-DDEBUG=1 -g -Wall | 54 | DEBUG_CFLAGS=-DDEBUG=1 -g -Wall |
src/classlib/classlib.cbp
@@ -33,11 +33,10 @@ | @@ -33,11 +33,10 @@ | ||
33 | <Compiler> | 33 | <Compiler> |
34 | <Add option="-Wall" /> | 34 | <Add option="-Wall" /> |
35 | </Compiler> | 35 | </Compiler> |
36 | - <Unit filename="Makefile" /> | 36 | + <Unit filename="Makefile.in" /> |
37 | <Unit filename="exception.cc" /> | 37 | <Unit filename="exception.cc" /> |
38 | <Unit filename="local.cc" /> | 38 | <Unit filename="local.cc" /> |
39 | <Unit filename="main.cc" /> | 39 | <Unit filename="main.cc" /> |
40 | - <Unit filename="pw3270class.h" /> | ||
41 | <Unit filename="remote.cc" /> | 40 | <Unit filename="remote.cc" /> |
42 | <Unit filename="session.cc" /> | 41 | <Unit filename="session.cc" /> |
43 | <Unit filename="testprogram.cc" /> | 42 | <Unit filename="testprogram.cc" /> |
src/classlib/local.cc
@@ -481,6 +481,61 @@ | @@ -481,6 +481,61 @@ | ||
481 | return _get_cursor_addr(hSession); | 481 | return _get_cursor_addr(hSession); |
482 | } | 482 | } |
483 | 483 | ||
484 | + int enter(void) | ||
485 | + { | ||
486 | + return _enter(hSession); | ||
487 | + } | ||
488 | + | ||
489 | + int pfkey(int key) | ||
490 | + { | ||
491 | + return _pfkey(hSession,key); | ||
492 | + } | ||
493 | + | ||
494 | + int pakey(int key) | ||
495 | + { | ||
496 | + return _pakey(hSession,key); | ||
497 | + } | ||
498 | + | ||
499 | + int quit(void) | ||
500 | + { | ||
501 | + return EINVAL; | ||
502 | + } | ||
503 | + | ||
504 | + int set_toggle(LIB3270_TOGGLE ix, bool value) | ||
505 | + { | ||
506 | + return _set_toggle(hSession, ix, (int) value); | ||
507 | + } | ||
508 | + | ||
509 | + int emulate_input(const char *str) | ||
510 | + { | ||
511 | + return _emulate_input(hSession,str,-1,1); | ||
512 | + } | ||
513 | + | ||
514 | + int get_field_start(int baddr) | ||
515 | + { | ||
516 | + return _get_field_start(hSession,baddr); | ||
517 | + } | ||
518 | + | ||
519 | + int get_field_len(int baddr) | ||
520 | + { | ||
521 | + return _get_field_len(hSession,baddr); | ||
522 | + } | ||
523 | + | ||
524 | + int get_next_unprotected(int baddr) | ||
525 | + { | ||
526 | + return _get_next_unprotected(hSession,baddr); | ||
527 | + } | ||
528 | + | ||
529 | + int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...) | ||
530 | + { | ||
531 | + va_list args; | ||
532 | + va_start(args, fmt); | ||
533 | + _popup_va(hSession, id, title, message, fmt, args); | ||
534 | + va_end(args); | ||
535 | + return 0; | ||
536 | + } | ||
537 | + | ||
538 | + | ||
484 | }; | 539 | }; |
485 | 540 | ||
486 | session * session::create_local(void) | 541 | session * session::create_local(void) |
src/classlib/remote.cc
@@ -842,6 +842,306 @@ | @@ -842,6 +842,306 @@ | ||
842 | } | 842 | } |
843 | 843 | ||
844 | 844 | ||
845 | + int enter(void) | ||
846 | + { | ||
847 | +#if defined(WIN32) | ||
848 | + | ||
849 | + return query_intval(HLLAPI_PACKET_ENTER); | ||
850 | + | ||
851 | +#elif defined(HAVE_DBUS) | ||
852 | + | ||
853 | + return query_intval("enter"); | ||
854 | + | ||
855 | +#else | ||
856 | + | ||
857 | + return -1; | ||
858 | + | ||
859 | +#endif | ||
860 | + | ||
861 | + } | ||
862 | + | ||
863 | + int pfkey(int key) | ||
864 | + { | ||
865 | +#if defined(WIN32) | ||
866 | + | ||
867 | + struct hllapi_packet_keycode query = { HLLAPI_PACKET_PFKEY, (unsigned short) key }; | ||
868 | + struct hllapi_packet_result response; | ||
869 | + DWORD cbSize = sizeof(query); | ||
870 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
871 | + return response.rc; | ||
872 | + | ||
873 | +#elif defined(HAVE_DBUS) | ||
874 | + | ||
875 | + dbus_int32_t k = (dbus_int32_t) key; | ||
876 | + | ||
877 | + DBusMessage * msg = create_message("pfKey"); | ||
878 | + if(msg) | ||
879 | + { | ||
880 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | ||
881 | + return get_intval(call(msg)); | ||
882 | + } | ||
883 | + | ||
884 | + return -1; | ||
885 | + | ||
886 | +#else | ||
887 | + | ||
888 | + return -1; | ||
889 | + | ||
890 | +#endif | ||
891 | + | ||
892 | + } | ||
893 | + | ||
894 | + int pakey(int key) | ||
895 | + { | ||
896 | +#if defined(WIN32) | ||
897 | + | ||
898 | + struct hllapi_packet_keycode query = { HLLAPI_PACKET_PAKEY, (unsigned short) key }; | ||
899 | + struct hllapi_packet_result response; | ||
900 | + DWORD cbSize = sizeof(query); | ||
901 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
902 | + return response.rc; | ||
903 | + | ||
904 | +#elif defined(HAVE_DBUS) | ||
905 | + | ||
906 | + dbus_int32_t k = (dbus_int32_t) key; | ||
907 | + | ||
908 | + DBusMessage * msg = create_message("paKey"); | ||
909 | + if(msg) | ||
910 | + { | ||
911 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | ||
912 | + return get_intval(call(msg)); | ||
913 | + } | ||
914 | + return -1; | ||
915 | + | ||
916 | +#else | ||
917 | + | ||
918 | + return -1; | ||
919 | + | ||
920 | +#endif | ||
921 | + | ||
922 | + } | ||
923 | + | ||
924 | + int quit(void) | ||
925 | + { | ||
926 | +#if defined(WIN32) | ||
927 | + | ||
928 | + return query_intval(HLLAPI_PACKET_QUIT); | ||
929 | + | ||
930 | +#elif defined(HAVE_DBUS) | ||
931 | + | ||
932 | + return query_intval("quit"); | ||
933 | + | ||
934 | +#else | ||
935 | + | ||
936 | + return -1; | ||
937 | + | ||
938 | +#endif | ||
939 | + | ||
940 | + } | ||
941 | + | ||
942 | + int set_toggle(LIB3270_TOGGLE ix, bool value) | ||
943 | + { | ||
944 | +#if defined(WIN32) | ||
945 | + | ||
946 | + struct hllapi_packet_set query = { HLLAPI_PACKET_SET_TOGGLE, (unsigned short) ix, (unsigned short) value }; | ||
947 | + struct hllapi_packet_result response; | ||
948 | + DWORD cbSize = sizeof(query); | ||
949 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
950 | + return response.rc; | ||
951 | + | ||
952 | +#elif defined(HAVE_DBUS) | ||
953 | + | ||
954 | + dbus_int32_t i = (dbus_int32_t) ix; | ||
955 | + dbus_int32_t v = (dbus_int32_t) value; | ||
956 | + | ||
957 | + DBusMessage * msg = create_message("setToggle"); | ||
958 | + if(msg) | ||
959 | + { | ||
960 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &i, DBUS_TYPE_INT32, &v, DBUS_TYPE_INVALID); | ||
961 | + return get_intval(call(msg)); | ||
962 | + } | ||
963 | + | ||
964 | + return -1; | ||
965 | + | ||
966 | +#else | ||
967 | + return -1; | ||
968 | + | ||
969 | +#endif | ||
970 | + | ||
971 | + } | ||
972 | + | ||
973 | + int emulate_input(const char *str) | ||
974 | + { | ||
975 | +#if defined(WIN32) | ||
976 | + | ||
977 | + size_t len = strlen(str); | ||
978 | + struct hllapi_packet_emulate_input * query; | ||
979 | + struct hllapi_packet_result response; | ||
980 | + DWORD cbSize = sizeof(struct hllapi_packet_emulate_input)+len; | ||
981 | + | ||
982 | + query = (struct hllapi_packet_emulate_input *) malloc(cbSize); | ||
983 | + query->packet_id = HLLAPI_PACKET_EMULATE_INPUT; | ||
984 | + query->len = len; | ||
985 | + query->pasting = 1; | ||
986 | + strcpy(query->text,str); | ||
987 | + | ||
988 | + TransactNamedPipe(hPipe,(LPVOID) query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
989 | + | ||
990 | + free(query); | ||
991 | + | ||
992 | + return response.rc; | ||
993 | + | ||
994 | +#elif defined(HAVE_DBUS) | ||
995 | + | ||
996 | + DBusMessage * msg = create_message("input"); | ||
997 | + if(msg) | ||
998 | + { | ||
999 | + dbus_message_append_args(msg, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID); | ||
1000 | + return get_intval(call(msg)); | ||
1001 | + } | ||
1002 | + return -1; | ||
1003 | + | ||
1004 | +#else | ||
1005 | + | ||
1006 | + return -1; | ||
1007 | + | ||
1008 | +#endif | ||
1009 | + | ||
1010 | + } | ||
1011 | + | ||
1012 | + int get_field_start(int baddr) | ||
1013 | + { | ||
1014 | +#if defined(WIN32) | ||
1015 | + | ||
1016 | + struct hllapi_packet_addr query = { HLLAPI_PACKET_FIELD_START, (unsigned short) baddr }; | ||
1017 | + struct hllapi_packet_result response; | ||
1018 | + DWORD cbSize = sizeof(query); | ||
1019 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
1020 | + return response.rc; | ||
1021 | + | ||
1022 | +#elif defined(HAVE_DBUS) | ||
1023 | + | ||
1024 | + dbus_int32_t k = (dbus_int32_t) baddr; | ||
1025 | + | ||
1026 | + DBusMessage * msg = create_message("getFieldStart"); | ||
1027 | + if(msg) | ||
1028 | + { | ||
1029 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | ||
1030 | + return get_intval(call(msg)); | ||
1031 | + } | ||
1032 | + | ||
1033 | + return -1; | ||
1034 | + | ||
1035 | +#else | ||
1036 | + | ||
1037 | + return -1; | ||
1038 | + | ||
1039 | +#endif | ||
1040 | + | ||
1041 | + } | ||
1042 | + | ||
1043 | + int get_field_len(int baddr) | ||
1044 | + { | ||
1045 | +#if defined(WIN32) | ||
1046 | + | ||
1047 | + struct hllapi_packet_addr query = { HLLAPI_PACKET_FIELD_LEN, (unsigned short) baddr }; | ||
1048 | + struct hllapi_packet_result response; | ||
1049 | + DWORD cbSize = sizeof(query); | ||
1050 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
1051 | + return response.rc; | ||
1052 | + | ||
1053 | +#elif defined(HAVE_DBUS) | ||
1054 | + | ||
1055 | + dbus_int32_t k = (dbus_int32_t) baddr; | ||
1056 | + | ||
1057 | + DBusMessage * msg = create_message("getFieldLength"); | ||
1058 | + if(msg) | ||
1059 | + { | ||
1060 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | ||
1061 | + return get_intval(call(msg)); | ||
1062 | + } | ||
1063 | + | ||
1064 | + return -1; | ||
1065 | + | ||
1066 | +#else | ||
1067 | + | ||
1068 | + return -1; | ||
1069 | + | ||
1070 | +#endif | ||
1071 | + } | ||
1072 | + | ||
1073 | + int get_next_unprotected(int baddr) | ||
1074 | + { | ||
1075 | +#if defined(WIN32) | ||
1076 | + | ||
1077 | + struct hllapi_packet_addr query = { HLLAPI_PACKET_NEXT_UNPROTECTED, (unsigned short) baddr }; | ||
1078 | + struct hllapi_packet_result response; | ||
1079 | + DWORD cbSize = sizeof(query); | ||
1080 | + TransactNamedPipe(hPipe,(LPVOID) &query, cbSize, &response, sizeof(response), &cbSize,NULL); | ||
1081 | + return response.rc; | ||
1082 | + | ||
1083 | +#elif defined(HAVE_DBUS) | ||
1084 | + | ||
1085 | + dbus_int32_t k = (dbus_int32_t) baddr; | ||
1086 | + | ||
1087 | + DBusMessage * msg = create_message("getNextUnprotected"); | ||
1088 | + if(msg) | ||
1089 | + { | ||
1090 | + dbus_message_append_args(msg, DBUS_TYPE_INT32, &k, DBUS_TYPE_INVALID); | ||
1091 | + return get_intval(call(msg)); | ||
1092 | + } | ||
1093 | + | ||
1094 | + return -1; | ||
1095 | + | ||
1096 | +#else | ||
1097 | + | ||
1098 | + return -1; | ||
1099 | + | ||
1100 | +#endif | ||
1101 | + | ||
1102 | + } | ||
1103 | + | ||
1104 | + int set_clipboard(const char *text) | ||
1105 | + { | ||
1106 | +#if defined(WIN32) | ||
1107 | + | ||
1108 | + return -1; | ||
1109 | + | ||
1110 | +#elif defined(HAVE_DBUS) | ||
1111 | + | ||
1112 | + DBusMessage * msg = create_message("setClipboard"); | ||
1113 | + if(msg) | ||
1114 | + { | ||
1115 | + dbus_message_append_args(msg, DBUS_TYPE_STRING, &text, DBUS_TYPE_INVALID); | ||
1116 | + return get_intval(call(msg)); | ||
1117 | + } | ||
1118 | + | ||
1119 | + return -1; | ||
1120 | + | ||
1121 | +#else | ||
1122 | + | ||
1123 | + return -1; | ||
1124 | + | ||
1125 | +#endif | ||
1126 | + | ||
1127 | + } | ||
1128 | + | ||
1129 | + string * get_clipboard(void) | ||
1130 | + { | ||
1131 | +#if defined(WIN32) | ||
1132 | + | ||
1133 | + return NULL; | ||
1134 | + | ||
1135 | +#elif defined(HAVE_DBUS) | ||
1136 | + | ||
1137 | + trace("%s",__FUNCTION__); | ||
1138 | + return query_string("getClipboard"); | ||
1139 | + | ||
1140 | +#endif | ||
1141 | + | ||
1142 | + return NULL; | ||
1143 | + } | ||
1144 | + | ||
845 | }; | 1145 | }; |
846 | 1146 | ||
847 | session * session::create_remote(const char *session) | 1147 | session * session::create_remote(const char *session) |
src/classlib/session.cc
@@ -156,7 +156,38 @@ | @@ -156,7 +156,38 @@ | ||
156 | return ETIMEDOUT; | 156 | return ETIMEDOUT; |
157 | } | 157 | } |
158 | 158 | ||
159 | + int session::set_copy(const char *text) | ||
160 | + { | ||
161 | + return EINVAL; | ||
162 | + } | ||
163 | + | ||
164 | + string * session::get_copy(void) | ||
165 | + { | ||
166 | + errno = EINVAL; | ||
167 | + return NULL; | ||
168 | + } | ||
159 | 169 | ||
170 | + string * session::get_clipboard(void) | ||
171 | + { | ||
172 | + errno = EINVAL; | ||
173 | + return NULL; | ||
174 | + } | ||
175 | + | ||
176 | + int session::set_clipboard(const char *text) | ||
177 | + { | ||
178 | + return EINVAL; | ||
179 | + } | ||
180 | + | ||
181 | + | ||
182 | + int session::popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...) | ||
183 | + { | ||
184 | + return -1; | ||
185 | + } | ||
186 | + | ||
187 | + string * session::file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename) | ||
188 | + { | ||
189 | + return NULL; | ||
190 | + } | ||
160 | 191 | ||
161 | } | 192 | } |
162 | 193 |
src/include/pw3270/class.h
@@ -40,6 +40,7 @@ | @@ -40,6 +40,7 @@ | ||
40 | #include <exception> | 40 | #include <exception> |
41 | #include <lib3270/config.h> | 41 | #include <lib3270/config.h> |
42 | #include <lib3270.h> | 42 | #include <lib3270.h> |
43 | + #include <lib3270/popup.h> | ||
43 | 44 | ||
44 | #ifdef HAVE_ICONV | 45 | #ifdef HAVE_ICONV |
45 | #include <iconv.h> | 46 | #include <iconv.h> |
@@ -48,6 +49,7 @@ | @@ -48,6 +49,7 @@ | ||
48 | #include <string> | 49 | #include <string> |
49 | #include <stdarg.h> | 50 | #include <stdarg.h> |
50 | #include <lib3270.h> | 51 | #include <lib3270.h> |
52 | + #include <gtk/gtk.h> | ||
51 | 53 | ||
52 | namespace pw3270 | 54 | namespace pw3270 |
53 | { | 55 | { |
@@ -113,29 +115,29 @@ | @@ -113,29 +115,29 @@ | ||
113 | virtual int set_cursor_addr(int addr) = 0; | 115 | virtual int set_cursor_addr(int addr) = 0; |
114 | virtual int get_cursor_addr(void) = 0; | 116 | virtual int get_cursor_addr(void) = 0; |
115 | 117 | ||
116 | -// virtual int set_toggle(LIB3270_TOGGLE ix, bool value) = 0; | 118 | + virtual int set_toggle(LIB3270_TOGGLE ix, bool value) = 0; |
117 | 119 | ||
118 | -// virtual int enter(void) = 0; | ||
119 | -// virtual int pfkey(int key) = 0; | ||
120 | -// virtual int pakey(int key) = 0; | 120 | + virtual int enter(void) = 0; |
121 | + virtual int pfkey(int key) = 0; | ||
122 | + virtual int pakey(int key) = 0; | ||
121 | 123 | ||
122 | -// virtual int emulate_input(const char *str) = 0; | 124 | + virtual int emulate_input(const char *str) = 0; |
123 | 125 | ||
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; | 126 | + virtual int get_field_start(int baddr = -1) = 0; |
127 | + virtual int get_field_len(int baddr = -1) = 0; | ||
128 | + virtual int get_next_unprotected(int baddr = -1) = 0; | ||
127 | 129 | ||
128 | -// virtual int set_copy(const char *text); | ||
129 | -// virtual char * get_copy(void); | 130 | + virtual int set_copy(const char *text); |
131 | + virtual string * get_copy(void); | ||
130 | 132 | ||
131 | -// virtual char * get_clipboard(void); | ||
132 | -// virtual int set_clipboard(const char *text); | 133 | + virtual string * get_clipboard(void); |
134 | + virtual int set_clipboard(const char *text); | ||
133 | 135 | ||
134 | -// virtual int quit(void) = 0; | 136 | + virtual int quit(void) = 0; |
135 | 137 | ||
136 | // Dialogs | 138 | // 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 | + virtual int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); |
140 | + virtual string * file_chooser_dialog(GtkFileChooserAction action, const char *title, const char *extension, const char *filename); | ||
139 | 141 | ||
140 | private: | 142 | private: |
141 | 143 |