Commit 4a5ece144763aadc4f76bb15483b1f1da94738cf
1 parent
44b6f5fb
Exists in
master
and in
5 other branches
Iniciando "encaixe" dos modulos da versao 5
Showing
14 changed files
with
174 additions
and
103 deletions
Show diff stats
Makefile.in
| ... | ... | @@ -48,7 +48,7 @@ sysconfdir=@sysconfdir@ |
| 48 | 48 | OBJDIR=.obj |
| 49 | 49 | BINDIR=.bin |
| 50 | 50 | |
| 51 | -DEPENDS=src/include/lib3270/* src/include/* Makefile | |
| 51 | +DBGLIB=-L../../$(BINDIR)/Debug/lib -l3270 | |
| 52 | 52 | |
| 53 | 53 | #---[ Tools ]------------------------------------------------------------------ |
| 54 | 54 | |
| ... | ... | @@ -59,11 +59,11 @@ MKDIR=@MKDIR_P@ |
| 59 | 59 | |
| 60 | 60 | Debug: $(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT) |
| 61 | 61 | |
| 62 | -$(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT): src/gtk/* $(DEPENDS) $(BINDIR)/Debug/lib/@DLLPREFIX@3270@DLLEXT@ | |
| 63 | - @$(MAKE) ROOTDIR="../.." -C src/gtk ../../$(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT) | |
| 62 | +$(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT): src/gtk/* $(BINDIR)/Debug/lib/@DLLPREFIX@3270@DLLEXT@ $(DEPENDS) | |
| 63 | + @$(MAKE) ROOTDIR="../.." LIB3270_LIBS="$(DBGLIB)" LIB3270_CFLAGS="-I../../src/include" -C src/gtk ../../$(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT) | |
| 64 | 64 | |
| 65 | -$(BINDIR)/Debug/lib/@DLLPREFIX@3270@DLLEXT@: src/lib3270/* $(DEPENDS) | |
| 66 | - @echo $(MAKE) ROOTDIR="../.." BINDBG=../../.bin/Debug/lib -C src/lib3270 ../../.bin/Debug/lib/@DLLPREFIX@3270@DLLEXT@ | |
| 65 | +$(BINDIR)/Debug/lib/@DLLPREFIX@3270@DLLEXT@: src/lib3270/* src/include/lib3270/* src/include/* Makefile | |
| 66 | + @$(MAKE) ROOTDIR="../.." BINDBG=../../.bin/Debug/lib -C src/lib3270 ../../.bin/Debug/lib/@DLLPREFIX@3270@DLLEXT@ | |
| 67 | 67 | |
| 68 | 68 | #---[ Targets ]---------------------------------------------------------------- |
| 69 | 69 | ... | ... |
src/gtk/Makefile.in
| ... | ... | @@ -71,7 +71,7 @@ $(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT): $(foreach SRC, $(basename $(SOURCES |
| 71 | 71 | |
| 72 | 72 | @echo $@ ... |
| 73 | 73 | @$(MKDIR) `dirname $@` |
| 74 | - @$(LD) -Wl,--rpath,.bin/Debug -o $@ $^ $(LIBS) $(LIB3270_LIBS) | |
| 74 | + @$(LD) -Wl,--rpath,.bin/Debug/lib -o $@ $^ $(LIBS) $(LIB3270_LIBS) | |
| 75 | 75 | |
| 76 | 76 | run: $(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT) |
| 77 | 77 | @cd "$(ROOTDIR)" ; .bin/Debug/$(PACKAGE_TARNAME)$(EXEEXT) | ... | ... |
src/gtk/actions.c
src/gtk/v3270/draw.c
src/gtk/v3270/keyboard.c
src/gtk/v3270/oia.c
| ... | ... | @@ -28,6 +28,8 @@ |
| 28 | 28 | */ |
| 29 | 29 | |
| 30 | 30 | #include <pw3270.h> |
| 31 | + #include <lib3270.h> | |
| 32 | + #include <lib3270/session.h> | |
| 31 | 33 | #include <lib3270/config.h> |
| 32 | 34 | #include <gtk/gtk.h> |
| 33 | 35 | #include <string.h> |
| ... | ... | @@ -914,7 +916,7 @@ void v3270_stop_timer(GtkWidget *widget) |
| 914 | 916 | |
| 915 | 917 | } |
| 916 | 918 | |
| 917 | -void v3270_update_oia(H3270 *session, OIA_FLAG id, unsigned char on) | |
| 919 | +void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on) | |
| 918 | 920 | { |
| 919 | 921 | cairo_t *cr; |
| 920 | 922 | GdkRectangle *r; | ... | ... |
src/gtk/v3270/private.h
| ... | ... | @@ -115,7 +115,7 @@ void v3270_update_cursor_rect(v3270 *widget, GdkRectangle *rect, unsigned cha |
| 115 | 115 | void v3270_update_luname(GtkWidget *widget,const gchar *name); |
| 116 | 116 | void v3270_update_message(v3270 *widget, LIB3270_MESSAGE id); |
| 117 | 117 | void v3270_update_cursor(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr); |
| 118 | -void v3270_update_oia(H3270 *session, OIA_FLAG id, unsigned char on); | |
| 118 | +void v3270_update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on); | |
| 119 | 119 | |
| 120 | 120 | // Keyboard & Mouse |
| 121 | 121 | gboolean v3270_key_press_event(GtkWidget *widget, GdkEventKey *event); | ... | ... |
src/gtk/v3270/widget.c
src/include/lib3270.h
| ... | ... | @@ -564,6 +564,18 @@ |
| 564 | 564 | */ |
| 565 | 565 | LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm); |
| 566 | 566 | |
| 567 | + /** | |
| 568 | + * Get the session's widget. | |
| 569 | + * | |
| 570 | + * Get the handle to the GtkWidget who's handling this session. | |
| 571 | + * | |
| 572 | + * @param h Session handle | |
| 573 | + * | |
| 574 | + * @return Associated GtkWidget (can be null) | |
| 575 | + * | |
| 576 | + */ | |
| 577 | + LIB3270_EXPORT void * lib3270_get_widget(H3270 *h); | |
| 578 | + | |
| 567 | 579 | #ifdef __cplusplus |
| 568 | 580 | } |
| 569 | 581 | #endif | ... | ... |
| ... | ... | @@ -0,0 +1,134 @@ |
| 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 session.h 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 | + * licinio@bb.com.br (Licínio Luis Branco) | |
| 28 | + * kraucer@bb.com.br (Kraucer Fernandes Mazuco) | |
| 29 | + * | |
| 30 | + */ | |
| 31 | + | |
| 32 | + #ifndef LIB3270_SESSION_H_INCLUDED | |
| 33 | + | |
| 34 | + #define LIB3270_SESSION_H_INCLUDED 1 | |
| 35 | + | |
| 36 | + #define LIB3270_LUNAME_LENGTH 16 | |
| 37 | + #define LIB3270_FULL_MODEL_NAME_LENGTH 13 | |
| 38 | + | |
| 39 | + struct _h3270 | |
| 40 | + { | |
| 41 | + unsigned short sz; /**< Struct size */ | |
| 42 | + | |
| 43 | + // Connection info | |
| 44 | + int secure_connection; | |
| 45 | + int sock; /**< Network socket */ | |
| 46 | + int net_sock; | |
| 47 | + LIB3270_CSTATE cstate; /**< Connection state */ | |
| 48 | + | |
| 49 | + #if defined(_WIN32) /*[*/ | |
| 50 | + HANDLE sock_handle; | |
| 51 | + #endif /*]*/ | |
| 52 | + | |
| 53 | + char * hostname; | |
| 54 | + char * connected_type; | |
| 55 | + char * connected_lu; | |
| 56 | + char luname[LIB3270_LUNAME_LENGTH+1]; | |
| 57 | + | |
| 58 | + char full_model_name[LIB3270_FULL_MODEL_NAME_LENGTH+1]; | |
| 59 | + char * model_name; | |
| 60 | + int model_num; | |
| 61 | + char * termtype; | |
| 62 | + | |
| 63 | + char * current_host; /**< the hostname part, stripped of qualifiers, luname and port number */ | |
| 64 | + char * full_current_host; /**< the entire string, for use in reconnecting */ | |
| 65 | + char * reconnect_host; | |
| 66 | + char * qualified_host; | |
| 67 | + char auto_reconnect_inprogress; | |
| 68 | + | |
| 69 | + LIB3270_MESSAGE oia_status; | |
| 70 | + | |
| 71 | + unsigned char oia_flag[LIB3270_FLAG_COUNT]; | |
| 72 | + | |
| 73 | + unsigned short current_port; | |
| 74 | + | |
| 75 | + // screen info | |
| 76 | + int ov_rows; | |
| 77 | + int ov_cols; | |
| 78 | +// int first_changed; | |
| 79 | +// int last_changed; | |
| 80 | + int maxROWS; | |
| 81 | + int maxCOLS; | |
| 82 | + unsigned short rows; | |
| 83 | + unsigned short cols; | |
| 84 | + int cursor_addr; | |
| 85 | + char flipped; | |
| 86 | + int screen_alt; /**< alternate screen? */ | |
| 87 | + int is_altbuffer; | |
| 88 | + | |
| 89 | + int formatted; /**< set in screen_disp */ | |
| 90 | + | |
| 91 | + // host.c | |
| 92 | + char std_ds_host; | |
| 93 | + char no_login_host; | |
| 94 | + char non_tn3270e_host; | |
| 95 | + char passthru_host; | |
| 96 | + char ssl_host; | |
| 97 | + char ever_3270; | |
| 98 | + | |
| 99 | + // Widget info | |
| 100 | + void * widget; | |
| 101 | + | |
| 102 | + // xio | |
| 103 | + unsigned long ns_read_id; | |
| 104 | + unsigned long ns_exception_id; | |
| 105 | + char reading; | |
| 106 | + char excepting; | |
| 107 | + | |
| 108 | + /* State change callbacks. */ | |
| 109 | + struct lib3270_state_callback *st_callbacks[LIB3270_STATE_USER]; | |
| 110 | + struct lib3270_state_callback *st_last[LIB3270_STATE_USER]; | |
| 111 | + | |
| 112 | + /* Session based callbacks */ | |
| 113 | + void (*configure)(H3270 *session, unsigned short rows, unsigned short cols); | |
| 114 | + void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr, unsigned char cursor); | |
| 115 | + void (*changed)(H3270 *session, int bstart, int bend); | |
| 116 | + | |
| 117 | + void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr); | |
| 118 | + void (*update_oia)(H3270 *session, LIB3270_FLAG id, unsigned char on); | |
| 119 | + void (*update_toggle)(H3270 *session, LIB3270_TOGGLE ix, unsigned char value, LIB3270_TOGGLE_TYPE reason, const char *name); | |
| 120 | + void (*update_luname)(H3270 *session, const char *name); | |
| 121 | + void (*update_status)(H3270 *session, LIB3270_MESSAGE id); | |
| 122 | + void (*update_connect)(H3270 *session, unsigned char connected); | |
| 123 | + void (*update_model)(H3270 *session, const char *name, int model, int rows, int cols); | |
| 124 | + | |
| 125 | + void (*set_timer)(H3270 *session, unsigned char on); | |
| 126 | + void (*erase)(H3270 *session); | |
| 127 | + void (*cursor)(H3270 *session, LIB3270_CURSOR id); | |
| 128 | + | |
| 129 | + }; | |
| 130 | + | |
| 131 | + | |
| 132 | +#endif // LIB3270_SESSION_H_INCLUDED | |
| 133 | + | |
| 134 | + | ... | ... |
src/lib3270/XtGlue.c
| ... | ... | @@ -946,6 +946,12 @@ LIB3270_EXPORT int lib3270_in_e(H3270 *h) |
| 946 | 946 | return (h->cstate >= CONNECTED_INITIAL_E); |
| 947 | 947 | } |
| 948 | 948 | |
| 949 | +LIB3270_EXPORT void * lib3270_get_widget(H3270 *h) | |
| 950 | +{ | |
| 951 | + CHECK_SESSION_HANDLE(h); | |
| 952 | + return h->widget; | |
| 953 | +} | |
| 954 | + | |
| 949 | 955 | LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm) |
| 950 | 956 | { |
| 951 | 957 | int rc; | ... | ... |
src/lib3270/api.h
| ... | ... | @@ -109,8 +109,8 @@ |
| 109 | 109 | #endif |
| 110 | 110 | |
| 111 | 111 | /** 3270 connection handle */ |
| 112 | - #define LUNAME_SIZE 16 | |
| 113 | - #define FULL_MODEL_NAME_SIZE 13 | |
| 112 | +// #define LUNAME_SIZE 16 | |
| 113 | +// #define FULL_MODEL_NAME_SIZE 13 | |
| 114 | 114 | |
| 115 | 115 | #define ST_RESOLVING LIB3270_STATE_RESOLVING |
| 116 | 116 | #define ST_HALF_CONNECT LIB3270_STATE_HALF_CONNECT |
| ... | ... | @@ -168,97 +168,7 @@ |
| 168 | 168 | |
| 169 | 169 | typedef struct _h3270 H3270; |
| 170 | 170 | |
| 171 | - struct _h3270 | |
| 172 | - { | |
| 173 | - unsigned short sz; /**< Struct size */ | |
| 174 | - | |
| 175 | - // Connection info | |
| 176 | - int secure_connection; | |
| 177 | - int sock; /**< Network socket */ | |
| 178 | - int net_sock; | |
| 179 | - LIB3270_CSTATE cstate; /**< Connection state */ | |
| 180 | - | |
| 181 | - #if defined(_WIN32) /*[*/ | |
| 182 | - HANDLE sock_handle; | |
| 183 | - #endif /*]*/ | |
| 184 | - | |
| 185 | - char * hostname; | |
| 186 | - char * connected_type; | |
| 187 | - char * connected_lu; | |
| 188 | - char luname[LUNAME_SIZE+1]; | |
| 189 | - | |
| 190 | - char full_model_name[FULL_MODEL_NAME_SIZE+1]; | |
| 191 | - char * model_name; | |
| 192 | - int model_num; | |
| 193 | - char * termtype; | |
| 194 | - | |
| 195 | - char * current_host; /**< the hostname part, stripped of qualifiers, luname and port number */ | |
| 196 | - char * full_current_host; /**< the entire string, for use in reconnecting */ | |
| 197 | - char * reconnect_host; | |
| 198 | - char * qualified_host; | |
| 199 | - char auto_reconnect_inprogress; | |
| 200 | - | |
| 201 | - LIB3270_MESSAGE oia_status; | |
| 202 | - | |
| 203 | - unsigned char oia_flag[LIB3270_FLAG_COUNT]; | |
| 204 | - | |
| 205 | - unsigned short current_port; | |
| 206 | - | |
| 207 | - // screen info | |
| 208 | - int ov_rows; | |
| 209 | - int ov_cols; | |
| 210 | -// int first_changed; | |
| 211 | -// int last_changed; | |
| 212 | - int maxROWS; | |
| 213 | - int maxCOLS; | |
| 214 | - unsigned short rows; | |
| 215 | - unsigned short cols; | |
| 216 | - int cursor_addr; | |
| 217 | - char flipped; | |
| 218 | - int screen_alt; /**< alternate screen? */ | |
| 219 | - int is_altbuffer; | |
| 220 | - | |
| 221 | - int formatted; /**< set in screen_disp */ | |
| 222 | - | |
| 223 | - // host.c | |
| 224 | - char std_ds_host; | |
| 225 | - char no_login_host; | |
| 226 | - char non_tn3270e_host; | |
| 227 | - char passthru_host; | |
| 228 | - char ssl_host; | |
| 229 | - char ever_3270; | |
| 230 | - | |
| 231 | - // Widget info | |
| 232 | - void * widget; | |
| 233 | - | |
| 234 | - // xio | |
| 235 | - unsigned long ns_read_id; | |
| 236 | - unsigned long ns_exception_id; | |
| 237 | - char reading; | |
| 238 | - char excepting; | |
| 239 | - | |
| 240 | - /* State change callbacks. */ | |
| 241 | - struct lib3270_state_callback *st_callbacks[N_ST]; | |
| 242 | - struct lib3270_state_callback *st_last[N_ST]; | |
| 243 | - | |
| 244 | - /* Session based callbacks */ | |
| 245 | - void (*configure)(H3270 *session, unsigned short rows, unsigned short cols); | |
| 246 | - void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr, unsigned char cursor); | |
| 247 | - void (*changed)(H3270 *session, int bstart, int bend); | |
| 248 | - | |
| 249 | - void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr); | |
| 250 | - void (*update_oia)(H3270 *session, OIA_FLAG id, unsigned char on); | |
| 251 | - void (*update_toggle)(H3270 *session, LIB3270_TOGGLE ix, unsigned char value, LIB3270_TOGGLE_TYPE reason, const char *name); | |
| 252 | - void (*update_luname)(H3270 *session, const char *name); | |
| 253 | - void (*update_status)(H3270 *session, LIB3270_STATUS id); | |
| 254 | - void (*update_connect)(H3270 *session, unsigned char connected); | |
| 255 | - void (*update_model)(H3270 *session, const char *name, int model, int rows, int cols); | |
| 256 | - | |
| 257 | - void (*set_timer)(H3270 *session, unsigned char on); | |
| 258 | - void (*erase)(H3270 *session); | |
| 259 | - void (*cursor)(H3270 *session, LIB3270_CURSOR id); | |
| 260 | - | |
| 261 | - }; | |
| 171 | + #include <lib3270/session.h> | |
| 262 | 172 | |
| 263 | 173 | struct lib3270_state_callback |
| 264 | 174 | { | ... | ... |
src/lib3270/glue.c
| ... | ... | @@ -181,7 +181,7 @@ static void lib3270_session_init(H3270 *hSession, const char *model) |
| 181 | 181 | hSession->cstate = NOT_CONNECTED; |
| 182 | 182 | hSession->oia_status = -1; |
| 183 | 183 | |
| 184 | - strncpy(hSession->full_model_name,"IBM-",FULL_MODEL_NAME_SIZE); | |
| 184 | + strncpy(hSession->full_model_name,"IBM-",LIB3270_FULL_MODEL_NAME_LENGTH); | |
| 185 | 185 | hSession->model_name = &hSession->full_model_name[4]; |
| 186 | 186 | |
| 187 | 187 | /* | ... | ... |
src/lib3270/host.c