Commit 5b38bdd9c5625227591e6ccc2eb189841d968f37

Authored by Perry Werneck
1 parent 4a4102e3

Implementing the new toolbar widget.

src/include/pw3270.h
... ... @@ -1,105 +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., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como pw3270.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 PW3270_H_INCLUDED
33   -
34   - #include <gtk/gtk.h>
35   - #include <lib3270.h>
36   - #include <lib3270/toggle.h>
37   -
38   - #define PW3270_H_INCLUDED 1
39   -
40   - // pw3270 window
41   - G_BEGIN_DECLS
42   -
43   - #define GTK_TYPE_PW3270 (pw3270_get_type ())
44   - #define GTK_PW3270(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PW3270, pw3270))
45   - #define GTK_PW3270_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PW3270, pw3270Class))
46   - #define GTK_IS_PW3270(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PW3270))
47   - #define GTK_IS_PW3270_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PW3270))
48   - #define GTK_PW3270_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PW3270, pw3270Class))
49   -
50   - typedef struct _pw3270 pw3270;
51   - typedef struct _pw3270Class pw3270Class;
52   -
53   -
54   - LIB3270_EXPORT GtkWidget * pw3270_new(const gchar *host, const gchar *systype, unsigned short colors);
55   - LIB3270_EXPORT void pw3270_set_url(GtkWidget *widget, const gchar *uri);
56   - LIB3270_EXPORT const gchar * pw3270_get_url(GtkWidget *widget);
57   - LIB3270_EXPORT void pw3270_connect(GtkWidget *widget);
58   -
59   - LIB3270_EXPORT gboolean pw3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix);
60   - LIB3270_EXPORT gboolean pw3270_set_toggle_by_name(GtkWidget *widget, const gchar *name, gboolean flag);
61   - LIB3270_EXPORT H3270 * pw3270_get_session(GtkWidget *widget);
62   - LIB3270_EXPORT GtkWidget * pw3270_get_terminal_widget(GtkWidget *widget);
63   -
64   - LIB3270_EXPORT GtkWidget * pw3270_get_toplevel(void);
65   -
66   - LIB3270_EXPORT void pw3270_save_window_size(GtkWidget *widget, const gchar *name);
67   - LIB3270_EXPORT void pw3270_restore_window(GtkWidget *widget, const gchar *name);
68   -
69   - LIB3270_EXPORT const gchar * pw3270_get_session_name(GtkWidget *widget);
70   - LIB3270_EXPORT void pw3270_set_session_name(GtkWidget *widget, const gchar *name);
71   - LIB3270_EXPORT void pw3270_set_oversize(GtkWidget *widget, const gchar *oversize);
72   - LIB3270_EXPORT void pw3270_set_host_type(GtkWidget *widget, const gchar *name);
73   - LIB3270_EXPORT int pw3270_set_session_color_type(GtkWidget *widget, unsigned short color_type);
74   -
75   -// LIB3270_EXPORT gchar * pw3270_get_filename(GtkWidget *widget, const gchar *group, const gchar *key, GtkFileFilter **filter, const gchar *title);
76   -
77   - LIB3270_EXPORT gchar * pw3270_get_string(GtkWidget *widget, const gchar *group, const gchar *key, const gchar *def);
78   - LIB3270_EXPORT void pw3270_set_string(GtkWidget *widget, const gchar *group, const gchar *key, const gchar *val);
79   -
80   - LIB3270_EXPORT gint pw3270_get_integer(GtkWidget *widget, const gchar *group, const gchar *key, gint def);
81   - LIB3270_EXPORT void pw3270_set_integer(GtkWidget *widget, const gchar *group, const gchar *key, gint val);
82   -
83   - LIB3270_EXPORT gboolean pw3270_get_boolean(GtkWidget *widget, const gchar *group, const gchar *key, gboolean def);
84   - LIB3270_EXPORT void pw3270_set_boolean(GtkWidget *widget, const gchar *group, const gchar *key, gint val);
85   -
86   - LIB3270_EXPORT gchar * pw3270_get_datadir(const gchar *first_element, ...);
87   -
88   - LIB3270_EXPORT void pw3270_set_host_charset(GtkWidget *widget, const gchar *name);
89   - LIB3270_EXPORT void pw3270_remap_from_xml(GtkWidget *widget, const gchar *name);
90   -
91   - LIB3270_EXPORT void pw3270_set_action_state(GtkAction *action, gboolean on);
92   -
93   - LIB3270_EXPORT int pw3270_print(GtkWidget *widget, GObject *action, GtkPrintOperationAction oper, LIB3270_CONTENT_OPTION src);
94   -
95   - LIB3270_EXPORT gboolean pw3270_set_keyboard_action(GtkWidget *widget, const gchar *key_name, GtkAction *action);
96   -
97   -
98   -#ifdef HAVE_GTKMAC
99   - #include <gtk-mac-bundle.h>
100   - LIB3270_EXPORT GtkMacBundle * pw3270_get_bundle(void);
101   -#endif
102   -
103   - G_END_DECLS
104   -
105   -#endif // PW3270_H_INCLUDED
src/include/pw3270/hllapi.h
... ... @@ -1,220 +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. 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., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como hllapi.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 HLLAPI_H_INCLUDED
33   -
34   - #define HLLAPI_H_INCLUDED 1
35   - #include <lib3270.h>
36   - #include <stdint.h>
37   -
38   -#ifdef __cplusplus
39   -extern "C" {
40   -#endif
41   -
42   - #define HLLAPI_MAXLENGTH 4096
43   -
44   - /* Function codes - Reference http://www.ibm.com/support/knowledgecenter/SSEQ5Y_6.0.0/com.ibm.pcomm.doc/books/html/emulator_programming08.htm */
45   - #define HLLAPI_CMD_CONNECTPS 1 /**< connect presentation space */
46   - #define HLLAPI_CMD_DISCONNECTPS 2 /**< disconnect presentation space */
47   - #define HLLAPI_CMD_INPUTSTRING 3 /**< send string */
48   - #define HLLAPI_CMD_WAIT 4 /**< Wait if the session is waiting for a host response */
49   - #define HLLAPI_CMD_COPYPS 5 /**< Copies the contents of the presentation space into a string buffer. */
50   - #define HLLAPI_CMD_SEARCHPS 6 /**< Search the presentation space for a specified string. */
51   - #define HLLAPI_CMD_QUERYCURSOR 7 /**< Determines the location of the cursor in the presentation space. */
52   - #define HLLAPI_CMD_COPYPSTOSTR 8 /**< Copy presentation space to string */
53   - #define HLLAPI_SET_SESSION_PARAMETERS 9 /**< Lets you change certain default session options in EHLLAPI for all sessions. */
54   - #define HLLAPI_CMD_COPYSTRTOPS 15 /**< Copies an ASCII string directly to a specified position in the presentation space. */
55   - #define HLLAPI_CMD_PAUSE 18 /**< Waits for a specified amount of time. */
56   - #define HLLAPI_RESET_SYSTEM 21 /**< Reinitializes EHLLAPI to its starting state. */
57   - #define HLLAPI_CMD_SETCURSOR 40 /**< Places the cursor at a specified position in presentation space.*/
58   - #define HLLAPI_CMD_SENDFILE 90 /**< Send file to the host */
59   - #define HLLAPI_CMD_RECEIVEFILE 91 /**< Receive a file from the host */
60   -
61   - #define HLLAPI_CMD_GETREVISION 2000 /**< Get lib3270 revision */
62   -
63   -
64   - /* Standard Return Codes - http://ps-2.kev009.com/tl/techlib/manuals/adoclib/3270hcon/hconugd/retrncod.htm#C20819C058kmar */
65   -
66   - // 00 Either the function was successfully executed, or there were no host updates since the last call was issued.
67   - #define HLLAPI_STATUS_SUCCESS 0 /**< Good return code */
68   -
69   - // 01 Either the presentation space short session ID was invalid, or the application is not connected.
70   - #define HLLAPI_STATUS_DISCONNECTED 1 /**< The presentation space was not valid or not connected. */
71   -
72   - // 02 A parameter error occurred.
73   - #define HLLAPI_STATUS_BAD_PARAMETER 2 /**< An incorrect option was specified. */
74   -
75   - // 04 The execution of the function was inhibited because the target presentation space was busy.
76   - // For example, X or XSYSTEM is displayed in the OIA for the 3270 terminal emulation.
77   - #define HLLAPI_STATUS_TIMEOUT 4 /**< Timeout */
78   -
79   - // 05 The execution of the function was inhibited for some reason other than the reasons stated in return code 4.
80   - #define HLLAPI_STATUS_KEYBOARD_LOCKED 5 /**< The keyboard is locked. */
81   -
82   - // 06 A data error occurred due to specification of an invalid parameter (for example, a length error causing truncation).
83   - // 07 The specified presentation space position was invalid.
84   - // 08 No prerequisite function was issued.
85   -
86   - // 09 A system error occurred.
87   - #define HLLAPI_STATUS_SYSTEM_ERROR 9 /**< A system error occurred */
88   -
89   - // 10 The function number is not supported by the emulation program.
90   - #define HLLAPI_STATUS_UNSUPPORTED 10
91   -
92   - // 11 The resource that you requested is unavailable (for example, too many attempts have been made to connect to the same presentation space (PS) or another application is connected to the PS).
93   - #define HLLAPI_STATUS_UNAVAILABLE 11 /**< Resource unavailable at this time */
94   -
95   - // 20 Invalid keystroke caused by ESC= option.
96   - // 21 OIA was updated.
97   - // 22 PS was updated.
98   - // 23 Both OIA and PS were updated.
99   - // 24 Either the string was not found, or the presentation space is unformatted.
100   - #define HLLAPI_STATUS_NOT_FOUND 24 /**< String not found or unformatted presentation space */
101   -
102   - // 25 Keystrokes were not available on input queue.
103   - // 26 A host event occurred. See QUERY HOST UPDATE (24) for details.
104   - // 28 Field length was 0.
105   - // 31 Keystroke queue overflow. Keystrokes were lost.
106   -
107   -
108   - #define HLLAPI_STATUS_WAITING HLLAPI_STATUS_TIMEOUT
109   -
110   - #if defined(_WIN32)
111   -
112   - #include <windows.h>
113   -
114   - // http://www.mingw.org/wiki/Visual_Basic_DLL
115   - #define HLLAPI_API_CALL __declspec (dllexport) DWORD __stdcall
116   -
117   - #else
118   -
119   - // From wtypesbase.h
120   - typedef uint8_t BYTE;
121   - typedef uint16_t WORD;
122   - typedef unsigned int UINT;
123   - typedef int INT;
124   - typedef uint32_t LONG;
125   - typedef LONG WINBOOL;
126   - typedef uint32_t DWORD;
127   - typedef void *HANDLE;
128   - typedef WORD *LPWORD;
129   - typedef DWORD *LPDWORD;
130   - typedef char CHAR;
131   - typedef CHAR *LPSTR;
132   - typedef const CHAR *LPCSTR;
133   - typedef char WCHAR;
134   - typedef WCHAR TCHAR;
135   - typedef WCHAR *LPWSTR;
136   - typedef TCHAR *LPTSTR;
137   - typedef const WCHAR *LPCWSTR;
138   - typedef const TCHAR *LPCTSTR;
139   - typedef HANDLE *LPHANDLE;
140   -
141   - #define LPWORD uint16_t *
142   -
143   - #define LPSTR char *
144   - #define HANDLE int
145   -
146   - #define HLLAPI_API_CALL __attribute__((visibility("default"))) extern DWORD
147   -
148   - #endif // _WIN32
149   -
150   - HLLAPI_API_CALL hllapi(const LPWORD func, LPSTR str, LPWORD length, LPWORD rc);
151   -
152   - HLLAPI_API_CALL hllapi_init(LPSTR mode);
153   - HLLAPI_API_CALL hllapi_deinit(void);
154   -
155   - HLLAPI_API_CALL hllapi_reset(void);
156   -
157   - HLLAPI_API_CALL hllapi_connect(LPSTR uri, WORD wait);
158   - HLLAPI_API_CALL hllapi_disconnect(void);
159   - HLLAPI_API_CALL hllapi_get_message_id(void);
160   - HLLAPI_API_CALL hllapi_is_connected(void);
161   - HLLAPI_API_CALL hllapi_get_state(void);
162   - HLLAPI_API_CALL hllapi_get_screen_at(WORD row, WORD col, LPSTR buffer);
163   - HLLAPI_API_CALL hllapi_get_screen(WORD pos, LPSTR buffer, WORD len);
164   - HLLAPI_API_CALL hllapi_enter(void);
165   - HLLAPI_API_CALL hllapi_set_text_at(WORD row, WORD col, LPSTR text);
166   - HLLAPI_API_CALL hllapi_cmp_text_at(WORD row, WORD col, LPSTR text);
167   - HLLAPI_API_CALL hllapi_find_text(LPSTR text);
168   - HLLAPI_API_CALL hllapi_emulate_input(const LPSTR buffer, WORD len, WORD pasting);
169   - HLLAPI_API_CALL hllapi_input_string(LPSTR buffer, WORD len);
170   - HLLAPI_API_CALL hllapi_wait_for_ready(WORD seconds);
171   - HLLAPI_API_CALL hllapi_wait_for_change(WORD seconds);
172   - HLLAPI_API_CALL hllapi_wait(WORD seconds);
173   - HLLAPI_API_CALL hllapi_pfkey(WORD key);
174   - HLLAPI_API_CALL hllapi_pakey(WORD key);
175   -
176   - HLLAPI_API_CALL hllapi_set_session_parameter(LPSTR param, WORD len, WORD value);
177   -
178   - HLLAPI_API_CALL hllapi_erase(void);
179   - HLLAPI_API_CALL hllapi_erase_eof(void);
180   - HLLAPI_API_CALL hllapi_erase_eol(void);
181   - HLLAPI_API_CALL hllapi_erase_input(void);
182   -
183   - HLLAPI_API_CALL hllapi_action(LPSTR buffer);
184   -
185   - HLLAPI_API_CALL hllapi_print(void);
186   -
187   - HLLAPI_API_CALL hllapi_init(LPSTR mode);
188   - HLLAPI_API_CALL hllapi_deinit(void);
189   -
190   - HLLAPI_API_CALL hllapi_get_revision(void);
191   - HLLAPI_API_CALL hllapi_get_datadir(LPSTR datadir);
192   - HLLAPI_API_CALL hllapi_set_charset(LPSTR datadir);
193   -
194   - HLLAPI_API_CALL hllapi_connect(LPSTR uri, WORD wait);
195   - HLLAPI_API_CALL hllapi_disconnect(void);
196   - HLLAPI_API_CALL hllapi_get_message_id(void);
197   - HLLAPI_API_CALL hllapi_is_connected(void);
198   - HLLAPI_API_CALL hllapi_get_state(void);
199   - HLLAPI_API_CALL hllapi_get_screen(WORD pos, LPSTR buffer, WORD len);
200   - HLLAPI_API_CALL hllapi_enter(void);
201   - HLLAPI_API_CALL hllapi_set_text_at(WORD row, WORD col, LPSTR text);
202   - HLLAPI_API_CALL hllapi_cmp_text_at(WORD row, WORD col, LPSTR text);
203   - HLLAPI_API_CALL hllapi_wait_for_ready(WORD seconds);
204   - HLLAPI_API_CALL hllapi_wait(WORD seconds);
205   - HLLAPI_API_CALL hllapi_pfkey(WORD key);
206   - HLLAPI_API_CALL hllapi_pakey(WORD key);
207   - HLLAPI_API_CALL hllapi_setcursor(WORD key);
208   - HLLAPI_API_CALL hllapi_getcursor();
209   - HLLAPI_API_CALL hllapi_get_cursor_address();
210   - HLLAPI_API_CALL hllapi_setcursor(WORD addr);
211   - HLLAPI_API_CALL hllapi_set_cursor_address(WORD addr);
212   - HLLAPI_API_CALL hllapi_erase_eof(void);
213   - HLLAPI_API_CALL hllapi_print(void);
214   - HLLAPI_API_CALL hllapi_set_unlock_delay(WORD ms);
215   -
216   -#ifdef __cplusplus
217   -} /* end of extern "C" */
218   -#endif
219   -
220   -#endif // HLLAPI_H_INCLUDED
src/include/pw3270/ipcpackets.h
... ... @@ -1,219 +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., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como lib3270.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   - *
28   - */
29   -
30   - typedef enum _hllapi_packet
31   - {
32   - HLLAPI_PACKET_CONNECT,
33   - HLLAPI_PACKET_SET_HOST,
34   - HLLAPI_PACKET_DISCONNECT,
35   - HLLAPI_PACKET_GET_PROGRAM_MESSAGE,
36   - HLLAPI_PACKET_GET_TEXT_AT_OFFSET,
37   - HLLAPI_PACKET_GET_TEXT_AT,
38   - HLLAPI_PACKET_SET_TEXT_AT,
39   - HLLAPI_PACKET_CMP_TEXT_AT,
40   - HLLAPI_PACKET_ENTER,
41   - HLLAPI_PACKET_PFKEY,
42   - HLLAPI_PACKET_PAKEY,
43   - HLLAPI_PACKET_SET_CURSOR_POSITION,
44   - HLLAPI_PACKET_GET_CURSOR_POSITION,
45   - HLLAPI_PACKET_INPUT_STRING,
46   - HLLAPI_PACKET_IS_CONNECTED,
47   - HLLAPI_PACKET_SET_CURSOR,
48   - HLLAPI_PACKET_GET_CURSOR,
49   - HLLAPI_PACKET_EMULATE_INPUT,
50   - HLLAPI_PACKET_ERASE,
51   - HLLAPI_PACKET_ERASE_EOF,
52   - HLLAPI_PACKET_ERASE_EOL,
53   - HLLAPI_PACKET_ERASE_INPUT,
54   - HLLAPI_PACKET_PRINT,
55   - HLLAPI_PACKET_GET_CSTATE,
56   - HLLAPI_PACKET_IS_READY,
57   - HLLAPI_PACKET_SET_TOGGLE,
58   - HLLAPI_PACKET_FIELD_START,
59   - HLLAPI_PACKET_FIELD_LEN,
60   - HLLAPI_PACKET_NEXT_UNPROTECTED,
61   - HLLAPI_PACKET_IS_PROTECTED,
62   - HLLAPI_PACKET_IS_PROTECTED_AT,
63   - HLLAPI_PACKET_QUIT,
64   - HLLAPI_PACKET_ACTION,
65   -
66   - HLLAPI_PACKET_SET_HOST_CHARSET,
67   - HLLAPI_PACKET_GET_HOST_CHARSET,
68   -
69   - HLLAPI_PACKET_ASC2EBC,
70   - HLLAPI_PACKET_EBC2ASC,
71   -
72   - HLLAPI_PACKET_FILE_TRANSFER,
73   -
74   - HLLAPI_PACKET_GET_SSL_STATE,
75   - HLLAPI_PACKET_SET_UNLOCK_DELAY,
76   -
77   - HLLAPI_PACKET_GET_WIDTH,
78   - HLLAPI_PACKET_GET_HEIGHT,
79   - HLLAPI_PACKET_GET_LENGTH,
80   - HLLAPI_PACKET_GET_HOST,
81   -
82   - HLLAPI_PACKET_CONNECT_URL,
83   -
84   - HLLAPI_PACKET_INVALID
85   -
86   - } HLLAPI_PACKET;
87   -
88   -#pragma pack(1)
89   -
90   -struct hllapi_packet_result
91   -{
92   - int rc;
93   -};
94   -
95   -struct hllapi_packet_text_result
96   -{
97   - int rc;
98   - char text[1];
99   -};
100   -
101   -struct hllapi_packet_query
102   -{
103   - unsigned char packet_id;
104   -};
105   -
106   -struct hllapi_packet_connect
107   -{
108   - unsigned char packet_id;
109   - unsigned char wait;
110   -};
111   -
112   -struct hllapi_packet_keycode
113   -{
114   - unsigned char packet_id;
115   - unsigned short keycode;
116   -};
117   -
118   -struct hllapi_packet_cursor
119   -{
120   - unsigned char packet_id;
121   - unsigned short row;
122   - unsigned short col;
123   -};
124   -
125   -struct hllapi_packet_text
126   -{
127   - unsigned char packet_id;
128   - char text[1];
129   -};
130   -
131   -struct hllapi_packet_at
132   -{
133   - unsigned char packet_id;
134   - unsigned short row;
135   - unsigned short col;
136   - unsigned short len;
137   - char lf;
138   -};
139   -
140   -struct hllapi_packet_text_at
141   -{
142   - unsigned char packet_id;
143   - unsigned short row;
144   - unsigned short col;
145   - char lf;
146   - char text[1];
147   -};
148   -
149   -struct hllapi_packet_query_at
150   -{
151   - unsigned char packet_id;
152   - unsigned short row;
153   - unsigned short col;
154   - unsigned short len;
155   - char lf;
156   -};
157   -
158   -struct hllapi_packet_wait
159   -{
160   - unsigned char packet_id;
161   - int timeout;
162   -};
163   -
164   -struct hllapi_packet_addr
165   -{
166   - unsigned char packet_id;
167   - unsigned short addr;
168   -};
169   -
170   -struct hllapi_packet_query_offset
171   -{
172   - unsigned char packet_id;
173   - unsigned short addr;
174   - unsigned short len;
175   - char lf;
176   -};
177   -
178   -struct hllapi_packet_emulate_input
179   -{
180   - unsigned char packet_id;
181   - unsigned short len;
182   - unsigned char pasting;
183   - char text[1];
184   -};
185   -
186   -struct hllapi_packet_set
187   -{
188   - unsigned char packet_id;
189   - unsigned short id;
190   - unsigned short value;
191   -};
192   -
193   -struct hllapi_packet_set_text
194   -{
195   - unsigned char packet_id;
196   - unsigned short len;
197   - char text[1];
198   -};
199   -
200   -struct hllapi_packet_set_int
201   -{
202   - unsigned char packet_id;
203   - int value;
204   -};
205   -
206   -struct hllapi_packet_file_transfer
207   -{
208   - unsigned char packet_id;
209   - unsigned int options;
210   - int lrecl;
211   - int blksize;
212   - int primspace;
213   - int secspace;
214   - int dft;
215   - char text[1];
216   -};
217   -
218   -#pragma pack()
219   -
src/include/pw3270/plugin.h
... ... @@ -1,63 +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. 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., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como plugin.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 PW3270_PLUGIN_INCLUDED
33   -
34   - #define PW3270_PLUGIN_INCLUDED 1
35   -
36   - #include <gtk/gtk.h>
37   - #include <lib3270.h>
38   -
39   -#ifdef __cplusplus
40   - extern "C" {
41   -#endif
42   -
43   - LIB3270_EXPORT int pw3270_plugin_init(void);
44   - LIB3270_EXPORT int pw3270_plugin_deinit(void);
45   -
46   - LIB3270_EXPORT int pw3270_plugin_start(GtkWidget *window, GtkWidget *terminal);
47   - LIB3270_EXPORT int pw3270_plugin_stop(GtkWidget *window, GtkWidget *terminal);
48   -
49   - // plugins
50   - LIB3270_EXPORT void pw3270_load_plugins(void);
51   - LIB3270_EXPORT void pw3270_unload_plugins(void);
52   -
53   - LIB3270_EXPORT void pw3270_start_plugins(GtkWidget *widget);
54   - LIB3270_EXPORT void pw3270_stop_plugins(GtkWidget *widget);
55   -
56   - LIB3270_EXPORT int pw3270_setup_plugin_action(GtkAction *action, GtkWidget *widget, const gchar *name);
57   -
58   -#ifdef __cplusplus
59   - }
60   -#endif
61   -
62   -#endif // PW3270_PLUGIN_INCLUDED
63   -
src/include/pw3270/toolbar.h 0 → 100644
... ... @@ -0,0 +1,60 @@
  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., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como - 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 +/**
  31 + * @brief Declares the pw3270 Toolbar widget.
  32 + *
  33 + */
  34 +
  35 +#ifndef PW3270_TOOLBAR_H_INCLUDED
  36 +
  37 + #define PW3270_TOOLBAR_H_INCLUDED
  38 +
  39 + #include <gtk/gtk.h>
  40 + #include <lib3270.h>
  41 + #include <lib3270/actions.h>
  42 +
  43 + G_BEGIN_DECLS
  44 +
  45 + #define PW3270_TYPE_TOOLBAR (pw3270ToolBar_get_type ())
  46 + #define PW3270_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PW3270_TYPE_TOOLBAR, pw3270ToolBar))
  47 + #define PW3270_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PW3270_TYPE_TOOLBAR, pw3270ToolBarClass))
  48 + #define PW3270_IS_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PW3270_TYPE_TOOLBAR))
  49 + #define PW3270_IS_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PW3270_TYPE_TOOLBAR))
  50 + #define PW3270_TOOLBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PW3270_TYPE_TOOLBAR, pw3270ToolBarClass))
  51 +
  52 + typedef struct _pw3270ToolBar pw3270ToolBar;
  53 + typedef struct _pw3270ToolBarClass pw3270ToolBarClass;
  54 +
  55 + GtkWidget * pw3270_toolbar_new(void);
  56 + GtkWidget * pw3270_toolbar_insert_lib3270_action(GtkWidget *toolbar, const LIB3270_ACTION *action, gint pos);
  57 +
  58 + G_END_DECLS
  59 +
  60 +#endif // PW3270_TOOLBAR_H_INCLUDED
... ...
src/widgets/toolbar/core.c 0 → 100644
... ... @@ -0,0 +1,87 @@
  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., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como - 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 + #include <config.h>
  31 + #include <pw3270/toolbar.h>
  32 +
  33 + struct _pw3270ToolBar {
  34 + GtkToolbar parent;
  35 +
  36 + };
  37 +
  38 + struct _pw3270ToolBarClass {
  39 +
  40 + GtkToolbarClass parent_class;
  41 +
  42 +
  43 + };
  44 +
  45 + G_DEFINE_TYPE(pw3270ToolBar, pw3270ToolBar, GTK_TYPE_TOOLBAR);
  46 +
  47 + static void pw3270ToolBar_class_init(pw3270ToolBarClass *klass) {
  48 +
  49 + }
  50 +
  51 + static void pw3270ToolBar_init(pw3270ToolBar *widget) {
  52 +
  53 + }
  54 +
  55 + GtkWidget * pw3270_toolbar_new(void) {
  56 + return g_object_new(PW3270_TYPE_TOOLBAR, NULL);
  57 + }
  58 +
  59 + GtkWidget * pw3270_toolbar_insert_lib3270_action(GtkWidget *toolbar, const LIB3270_ACTION *action, gint pos) {
  60 +
  61 + g_return_val_if_fail(GTK_IS_TOOLBAR(toolbar),NULL);
  62 +
  63 + if(!action) {
  64 + g_message("Invalid action identifier");
  65 + return NULL;
  66 + }
  67 +
  68 + if(!action->icon) {
  69 + g_message("Action \"%s\" doesn't have an icon", action->name);
  70 + return NULL;
  71 + }
  72 +
  73 + if(!action->label) {
  74 + g_message("Action \"%s\" doesn't have a label", action->name);
  75 + return NULL;
  76 + }
  77 +
  78 + GtkToolItem * item = gtk_tool_button_new(gtk_image_new_from_icon_name(action->icon,GTK_ICON_SIZE_LARGE_TOOLBAR),action->label);
  79 +
  80 + if(action->summary)
  81 + gtk_tool_item_set_tooltip_text(item,action->summary);
  82 +
  83 + gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, pos);
  84 +
  85 + return GTK_WIDGET(item);
  86 + }
  87 +
... ...
src/widgets/toolbar/testprogram/testprogram.c 0 → 100644
... ... @@ -0,0 +1,110 @@
  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. Registro no INPI sob
  5 + * o nome G3270.
  6 + *
  7 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  8 + *
  9 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  10 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  11 + * Free Software Foundation.
  12 + *
  13 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  14 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  15 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  16 + * obter mais detalhes.
  17 + *
  18 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  19 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  20 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  21 + *
  22 + * Este programa está nomeado como testprogram.c e possui - linhas de código.
  23 + *
  24 + * Contatos:
  25 + *
  26 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  27 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  28 + *
  29 + */
  30 +
  31 + #include <config.h>
  32 + #include <pw3270/toolbar.h>
  33 + #include <v3270.h>
  34 + #include <v3270/trace.h>
  35 + #include <lib3270/log.h>
  36 +
  37 + /*---[ Implement ]----------------------------------------------------------------------------------*/
  38 +
  39 + static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) {
  40 +
  41 + GtkWidget * window = gtk_application_window_new(app);
  42 + GtkWidget * terminal = v3270_new();
  43 + GtkWidget * vBox = gtk_box_new(GTK_ORIENTATION_VERTICAL,2);
  44 + GtkWidget * notebook = gtk_notebook_new();
  45 + GtkWidget * toolbar = pw3270_toolbar_new();
  46 +
  47 + {
  48 + // Setup toolbar
  49 + static const char * action_names[] = {
  50 + "reconnect",
  51 + "disconnect",
  52 + "selectall",
  53 + "unselect"
  54 + };
  55 +
  56 + size_t ix;
  57 +
  58 + for(ix = 0; ix < G_N_ELEMENTS(action_names); ix++) {
  59 + pw3270_toolbar_insert_lib3270_action(toolbar, lib3270_action_get_by_name(action_names[ix]), -1);
  60 + }
  61 +
  62 + }
  63 +
  64 + gtk_box_pack_start(GTK_BOX(vBox),toolbar,FALSE,TRUE,0);
  65 + gtk_box_pack_start(GTK_BOX(vBox),notebook,TRUE,TRUE,0);
  66 +
  67 + // Create Terminal window
  68 + {
  69 + gtk_widget_set_can_default(terminal,TRUE);
  70 +
  71 + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),terminal,gtk_label_new("Terminal"));
  72 +
  73 +#ifdef _WIN32
  74 + v3270_set_font_family(terminal,"Droid Sans Mono");
  75 +#endif // _WIN32
  76 +
  77 + }
  78 +
  79 + // Create trace window
  80 + gtk_notebook_append_page(GTK_NOTEBOOK(notebook),v3270_trace_new(terminal),gtk_label_new("Trace"));
  81 +
  82 + // Setup and show main window
  83 + gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
  84 + gtk_window_set_default_size (GTK_WINDOW (window), 800, 500);
  85 + gtk_container_add(GTK_CONTAINER(window),vBox);
  86 + gtk_widget_show_all(window);
  87 +
  88 + gtk_widget_grab_focus(terminal);
  89 +
  90 +}
  91 +
  92 +int main (int argc, char **argv) {
  93 +
  94 + GtkApplication *app;
  95 + int status;
  96 +
  97 + app = gtk_application_new ("br.com.bb.pw3270",G_APPLICATION_FLAGS_NONE);
  98 +
  99 + g_signal_connect (app, "activate", G_CALLBACK(activate), NULL);
  100 +
  101 + status = g_application_run (G_APPLICATION (app), argc, argv);
  102 + g_object_unref (app);
  103 +
  104 + g_message("rc=%d",status);
  105 +
  106 + return 0;
  107 +
  108 +}
  109 +
  110 +
... ...
src/widgets/toolbar/toolbar.cbp 0 → 100644
... ... @@ -0,0 +1,52 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
  2 +<CodeBlocks_project_file>
  3 + <FileVersion major="1" minor="6" />
  4 + <Project>
  5 + <Option title="pw3270 V5.2 toolbar" />
  6 + <Option pch_mode="2" />
  7 + <Option compiler="gcc" />
  8 + <Build>
  9 + <Target title="Debug">
  10 + <Option output=".bin/Debug/toolbar" prefix_auto="1" extension_auto="1" />
  11 + <Option object_output=".obj/Debug/" />
  12 + <Option type="1" />
  13 + <Option compiler="gcc" />
  14 + <Compiler>
  15 + <Add option="-g" />
  16 + </Compiler>
  17 + </Target>
  18 + <Target title="Release">
  19 + <Option output=".bin/Release/pw3270 V5" prefix_auto="1" extension_auto="1" />
  20 + <Option object_output=".obj/Release/" />
  21 + <Option type="1" />
  22 + <Option compiler="gcc" />
  23 + <Compiler>
  24 + <Add option="-O2" />
  25 + </Compiler>
  26 + <Linker>
  27 + <Add option="-s" />
  28 + </Linker>
  29 + </Target>
  30 + </Build>
  31 + <Compiler>
  32 + <Add option="-Wall" />
  33 + <Add option="`pkg-config --cflags gtk+-3.0 lib3270 libv3270`" />
  34 + <Add directory="../../include" />
  35 + </Compiler>
  36 + <Linker>
  37 + <Add option="`pkg-config --libs gtk+-3.0 lib3270 libv3270`" />
  38 + </Linker>
  39 + <Unit filename="../../include/pw3270/toolbar.h" />
  40 + <Unit filename="core.c">
  41 + <Option compilerVar="CC" />
  42 + </Unit>
  43 + <Unit filename="testprogram/testprogram.c">
  44 + <Option compilerVar="CC" />
  45 + </Unit>
  46 + <Extensions>
  47 + <code_completion />
  48 + <envvars />
  49 + <debugger />
  50 + </Extensions>
  51 + </Project>
  52 +</CodeBlocks_project_file>
... ...