Commit fc3b8b17a375541f83075b0c0d657509454f79a9

Authored by Perry Werneck
1 parent ab1c5846

Removing unused sources.

src/pw3270/ft/Makefile.in
... ... @@ -1,123 +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   -# Contatos:
22   -#
23   -# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
24   -# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
25   -#
26   -
27   -MODULE_NAME=ft3270
28   -
29   -SOURCES=ftdialog.c ftprogress.c browse.c
30   -
31   -#---[ Paths ]------------------------------------------------------------------
32   -
33   -prefix=@prefix@
34   -exec_prefix=@exec_prefix@
35   -bindir=@bindir@
36   -libdir=@libdir@
37   -datarootdir=@datarootdir@
38   -localedir=@localedir@
39   -desktopdir=$(datarootdir)/applications
40   -
41   -#---[ Tools ]-----------------------------------------------------------------
42   -
43   -MKDIR=@MKDIR_P@
44   -CC=@CC@
45   -LD=@CC@
46   -AR=@AR@
47   -
48   -#---[ Environment ]------------------------------------------------------------
49   -
50   -LIB3270_CFLAGS=-I../../include
51   -LIB3270_LIBS=-L../../../.bin/Debug@DLLDIR@ -l3270
52   -
53   -CFLAGS=@CFLAGS@ @DLL_CFLAGS@ @GTK_CFLAGS@ @GTKMAC_CFLAGS@ -DLIBDIR=\"$(libdir)\" -I../../include
54   -LIBS=@LIBS@ @GTK_LIBS@ @GTKMAC_LIBS@
55   -
56   -DEBUG_CFLAGS=-DDEBUG=1 -g -Wall
57   -DEPENDS ?= *.h ../../include/*.h ../../include/lib3270/*.h Makefile
58   -
59   -#---[ Paths ]------------------------------------------------------------------
60   -
61   -ROOTDIR ?= .
62   -OBJDIR ?= $(ROOTDIR)/.obj
63   -BINDIR ?= $(ROOTDIR)/.bin
64   -TMPDIR ?= $(ROOTDIR)/.tmp
65   -
66   -BINDBG ?= $(BINDIR)/Debug
67   -BINRLS ?= $(BINDIR)/Release
68   -LIBDBG ?= $(BINDBG)@DLLDIR@
69   -
70   -OBJDBG = $(OBJDIR)/Debug
71   -OBJRLS = $(OBJDIR)/Release
72   -
73   -#---[ Rules ]------------------------------------------------------------------
74   -
75   -$(OBJDBG)/%.o: %.c $(DEPENDS)
76   - @echo " CC `basename $@`"
77   - @$(MKDIR) `dirname $@`
78   - @$(CC) $(DEBUG_CFLAGS) $(CFLAGS) $(LIB3270_CFLAGS) -o $@ -c $<
79   -
80   -$(OBJRLS)/%.o: %.c $(DEPENDS)
81   - @echo " CC `basename $@`"
82   - @$(MKDIR) `dirname $@`
83   - @$(CC) $(CFLAGS) $(LIB3270_CFLAGS) -o $@ -c $<
84   -
85   -#---[ Targets ]----------------------------------------------------------------
86   -
87   -Release: \
88   - $(BINRLS)/$(MODULE_NAME).a
89   -
90   -Debug: \
91   - $(BINDBG)/$(MODULE_NAME)@EXEEXT@
92   -
93   -run: \
94   - $(BINDBG)/$(MODULE_NAME)@EXEEXT@
95   - @$(BINDBG)/$(MODULE_NAME)@EXEEXT@
96   -
97   -$(BINDBG)/$(MODULE_NAME).a: \
98   - $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
99   -
100   - @$(MKDIR) `dirname $@`
101   - @$(AR) rcs $@ $^
102   -
103   -$(BINRLS)/$(MODULE_NAME).a: \
104   - $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
105   -
106   - @$(MKDIR) `dirname $@`
107   - @$(AR) rcs $@ $^
108   -
109   -$(BINDBG)/$(MODULE_NAME)@EXEEXT@: \
110   - $(OBJDBG)/testprogram.o \
111   - $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
112   -
113   - @$(MKDIR) `dirname $@`
114   - @$(LD) @LDARCH@ @DBGRPATH@ -o $@ $^ $(LIBS)
115   -
116   -cleanDebug: \
117   - clean
118   -
119   -clean:
120   - @rm -fr .bin
121   - @rm -fr .obj
122   -
123   -
src/pw3270/ft/browse.c
... ... @@ -1,158 +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 browse.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   - #include "private.h"
31   -
32   -#ifdef WIN32
33   - #include <gdk/gdkwin32.h>
34   -#endif // WIN32
35   -
36   -/*---[ Implement ]----------------------------------------------------------------------------------*/
37   -
38   -/*
39   -#ifdef WIN32
40   -
41   -struct file
42   -{
43   - OPENFILENAME ofn;
44   - char szName[260]; // buffer for file name
45   - int mode;
46   - BOOL ok;
47   -};
48   -
49   -static gpointer select_file(struct file *fl)
50   -{
51   - if(fl->mode == 1)
52   - {
53   - fl->ok = GetSaveFileName(&fl->ofn);
54   - }
55   - else
56   - {
57   - fl->ok = GetOpenFileName(&fl->ofn);
58   - }
59   -
60   - fl->mode = 3;
61   -
62   - return 0;
63   -}
64   -
65   -void browse_file(GtkButton *button,v3270FTD *parent)
66   -{
67   - GThread * thd;
68   - struct file fl;
69   - GdkWindow * win = gtk_widget_get_window(GTK_WIDGET(parent));
70   -
71   - gtk_widget_set_sensitive(GTK_WIDGET(parent),FALSE);
72   -
73   - memset(&fl,0,sizeof(fl));
74   - fl.ofn.lStructSize = sizeof(fl.ofn);
75   - fl.ofn.hwndOwner = GDK_WINDOW_HWND(win);
76   - fl.ofn.lpstrFile = fl.szName;
77   -
78   - // Set lpstrFile[0] to '\0' so that GetOpenFileName does not
79   - // use the contents of szFile to initialize itself.
80   - fl.ofn.lpstrFile[0] = '\0';
81   -
82   - fl.ofn.nMaxFile = sizeof(fl.szName);
83   - fl.ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
84   - fl.ofn.nFilterIndex = 1;
85   - fl.ofn.nMaxFileTitle = 0;
86   - fl.ofn.lpstrInitialDir = NULL;
87   -
88   - // Guarda o valor atual
89   - strncpy(fl.szName,gtk_entry_get_text(GTK_ENTRY(parent->filename[FILENAME_LOCAL])),fl.ofn.nMaxFile);
90   -
91   - fl.mode = (parent->options & LIB3270_FT_OPTION_RECEIVE) ? 1 : 0;
92   -
93   - if(fl.mode == 1)
94   - {
95   - // Receber arquivo
96   - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms646839(v=vs.85).aspx
97   - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms646829(v=vs.85).aspx#open_file
98   -
99   -// fl.ofn.lpstrFileTitle = _( "Select file to receive" );
100   - fl.ofn.Flags = OFN_OVERWRITEPROMPT;
101   -
102   - }
103   - else
104   - {
105   - // Enviar arquivo
106   - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms646928(v=vs.85).aspx
107   -// fl.ofn.lpstrFileTitle = _( "Select file to send" );
108   - fl.ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
109   -
110   - }
111   -
112   - thd = g_thread_new("GetFileName",(GThreadFunc) select_file, &fl);
113   -
114   - while(fl.mode != 3) {
115   - g_main_context_iteration(NULL,TRUE);
116   - }
117   -
118   - g_thread_unref(thd);
119   -
120   - if(fl.ok)
121   - {
122   - gtk_entry_set_text(GTK_ENTRY(parent->filename[FILENAME_LOCAL]),fl.szName);
123   - }
124   -
125   - gtk_widget_set_sensitive(GTK_WIDGET(parent),TRUE);
126   -
127   -}
128   -#else
129   -void browse_file(GtkButton *button,v3270FTD *parent)
130   -{
131   - gboolean recv = (parent->options & LIB3270_FT_OPTION_RECEIVE);
132   - GtkWidget * dialog = gtk_file_chooser_dialog_new
133   - (
134   - recv ? _( "Select file to receive" ) : _( "Select file to send" ),
135   - GTK_WINDOW(parent),
136   - GTK_FILE_CHOOSER_ACTION_OPEN,
137   - _("_Cancel" ), GTK_RESPONSE_CANCEL,
138   - recv ? _("_Save") : _("_Send"), GTK_RESPONSE_ACCEPT,
139   - NULL
140   - );
141   -
142   - const gchar * current = gtk_entry_get_text(GTK_ENTRY(parent->filename[FILENAME_LOCAL]));
143   - if(current && *current)
144   - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog),current);
145   -
146   - if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
147   - {
148   - gchar *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
149   - gtk_entry_set_text(GTK_ENTRY(parent->filename[FILENAME_LOCAL]),filename);
150   - g_free(filename);
151   - }
152   -
153   - gtk_widget_destroy(dialog);
154   -
155   -
156   -}
157   -#endif // WIN32
158   -*/
src/pw3270/ft/filetransfer.c
... ... @@ -1,321 +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 filetransfer.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   - * Agradecimento:
29   - *
30   - * Roberto Soares (a_r_soares@hotmail.com)
31   - *
32   - */
33   -
34   -#include <stdlib.h>
35   -#include "globals.h"
36   -#include "ft/v3270ft.h"
37   -#include <lib3270/filetransfer.h>
38   -
39   -/*--[ Constants ]------------------------------------------------------------------------------------*/
40   -
41   - static const struct _ftoptions
42   - {
43   - LIB3270_FT_OPTION val;
44   - const gchar * name;
45   - }
46   - ftoptions[] =
47   - { { LIB3270_FT_OPTION_ASCII, "text" },
48   - { LIB3270_FT_OPTION_CRLF, "cr" },
49   - { LIB3270_FT_OPTION_APPEND, "append" },
50   - { LIB3270_FT_OPTION_REMAP, "remap" }
51   - };
52   -
53   - static const struct _recfm
54   - {
55   - LIB3270_FT_OPTION val;
56   - const gchar * name;
57   - } recfm[] =
58   - {
59   - { LIB3270_FT_RECORD_FORMAT_DEFAULT, "default" },
60   - { LIB3270_FT_RECORD_FORMAT_FIXED, "fixed" },
61   - { LIB3270_FT_RECORD_FORMAT_VARIABLE, "variable" },
62   - { LIB3270_FT_RECORD_FORMAT_UNDEFINED, "undefined" }
63   - };
64   -
65   - static const struct _ftunits
66   - {
67   - LIB3270_FT_OPTION val;
68   - const gchar * name;
69   - } units[] =
70   - {
71   - { LIB3270_FT_ALLOCATION_UNITS_DEFAULT, "default" },
72   - { LIB3270_FT_ALLOCATION_UNITS_TRACKS, "tracks" },
73   - { LIB3270_FT_ALLOCATION_UNITS_CYLINDERS, "cylinders" },
74   - { LIB3270_FT_ALLOCATION_UNITS_AVBLOCK, "avblock" }
75   - };
76   -
77   -
78   -/*--[ Implement ]------------------------------------------------------------------------------------*/
79   -
80   -/*
81   -static LIB3270_FT_OPTION get_options_from_config(const gchar *group)
82   -{
83   - int f;
84   - LIB3270_FT_OPTION rc = 0;
85   - gchar * ptr;
86   -
87   - // Get base FT options
88   - for(f=0;f<G_N_ELEMENTS(ftoptions);f++)
89   - {
90   - if(get_boolean_from_config(group,ftoptions[f].name,FALSE))
91   - rc |= ftoptions[f].val;
92   - }
93   -
94   - // Get Record format
95   - ptr = get_string_from_config(group, "units", "default");
96   - for(f=0;f<G_N_ELEMENTS(units);f++)
97   - {
98   - if(!g_ascii_strcasecmp(ptr,units[f].name))
99   - rc |= units[f].val;
100   - }
101   - g_free(ptr);
102   -
103   - // Get allocation units
104   - ptr = get_string_from_config(group, "recfm", "variable");
105   - for(f=0;f<G_N_ELEMENTS(recfm);f++)
106   - {
107   - if(!g_ascii_strcasecmp(ptr,recfm[f].name))
108   - rc |= recfm[f].val;
109   - }
110   - g_free(ptr);
111   -
112   -
113   - return rc;
114   -}
115   -
116   -static void ft_dialog_load(GtkWidget *widget, const gchar *name)
117   -{
118   - gchar *ptr;
119   -
120   - ptr = get_string_from_config(name, "remote", "");
121   - v3270_ft_dialog_set_host_filename(widget,ptr);
122   - g_free(ptr);
123   -
124   - ptr = get_string_from_config(name, "local", "");
125   - v3270_ft_dialog_set_local_filename(widget,ptr);
126   - g_free(ptr);
127   -
128   - v3270_ft_dialog_set_dft_buffer_size(widget,get_integer_from_config(name,"dft",4096));
129   - v3270_ft_dialog_set_record_length(widget,get_integer_from_config(name,"reclen",0));
130   - v3270_ft_dialog_set_block_size(widget,get_integer_from_config(name,"blksize",0));
131   - v3270_ft_dialog_set_primary_space(widget,get_integer_from_config(name,"primspace",0));
132   - v3270_ft_dialog_set_secondary_space(widget,get_integer_from_config(name,"secspace",0));
133   -
134   -}
135   -
136   -static void ft_dialog_save(GtkWidget *widget, const gchar *name)
137   -{
138   - LIB3270_FT_OPTION opt = v3270_ft_dialog_get_options(widget);
139   - const gchar * filename = v3270_ft_dialog_get_local_filename(widget);
140   - int f;
141   -
142   - for(f=0;f<G_N_ELEMENTS(ftoptions);f++)
143   - {
144   - trace("%s=%s",ftoptions[f].name,((opt & ftoptions[f].val) != 0) ? "ON" : "OFF");
145   - set_boolean_to_config(name, ftoptions[f].name, ((opt & ftoptions[f].val) != 0));
146   - }
147   -
148   - for(f=0;f<G_N_ELEMENTS(recfm);f++)
149   - {
150   - if((opt & LIB3270_FT_RECORD_FORMAT_MASK) == recfm[f].val)
151   - set_string_to_config(name,"recfm","%s",recfm[f].name);
152   - }
153   -
154   - for(f=0;f<G_N_ELEMENTS(units);f++)
155   - {
156   - if( (opt & LIB3270_FT_ALLOCATION_UNITS_MASK) == units[f].val)
157   - set_string_to_config(name,"units","%s",units[f].name);
158   - }
159   -
160   - set_integer_to_config(name,"dft",v3270_ft_dialog_get_dft_buffer_size(widget));
161   - set_integer_to_config(name,"reclen",v3270_ft_dialog_get_record_length(widget));
162   - set_integer_to_config(name,"blksize",v3270_ft_dialog_get_block_size(widget));
163   - set_integer_to_config(name,"primspace",v3270_ft_dialog_get_primary_space(widget));
164   - set_integer_to_config(name,"secspace",v3270_ft_dialog_get_secondary_space(widget));
165   -
166   - set_string_to_config(name,"local","%s",filename);
167   - set_string_to_config(name,"remote","%s",v3270_ft_dialog_get_host_filename(widget));
168   -
169   -#ifdef HAVE_WIN_REGISTRY
170   - gchar *ext = strrchr(filename,'.');
171   -
172   - if(ext)
173   - {
174   - // Save extension based file settings
175   - HKEY hKey;
176   - DWORD disp;
177   - gchar * path = g_strdup_printf("%s\\%s\\%s\\%s","SOFTWARE",g_get_application_name(),name,ext+1);
178   -
179   - if(RegCreateKeyEx(HKEY_CURRENT_USER,path,0,NULL,REG_OPTION_NON_VOLATILE,KEY_SET_VALUE,NULL,&hKey,&disp) == ERROR_SUCCESS)
180   - {
181   - DWORD value;
182   -
183   - value = (DWORD) v3270_ft_dialog_get_options(widget);
184   - RegSetValueEx(hKey, "options", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
185   -
186   - value = (DWORD) v3270_ft_dialog_get_dft_buffer_size(widget);
187   - RegSetValueEx(hKey, "dft", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
188   -
189   - value = (DWORD) v3270_ft_dialog_get_record_length(widget);
190   - RegSetValueEx(hKey, "reclen", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
191   -
192   - value = (DWORD) v3270_ft_dialog_get_block_size(widget);
193   - RegSetValueEx(hKey, "blksize", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
194   -
195   - value = (DWORD) v3270_ft_dialog_get_primary_space(widget);
196   - RegSetValueEx(hKey, "primspace", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
197   -
198   - value = (DWORD) v3270_ft_dialog_get_secondary_space(widget);
199   - RegSetValueEx(hKey, "secspace", 0, REG_DWORD,(const BYTE *) &value,sizeof(value));
200   -
201   - RegCloseKey(hKey);
202   - }
203   -
204   - g_free(path);
205   - }
206   -
207   -#endif // HAVE_WIN_REGISTRY
208   -
209   -}
210   -
211   -static void ft_complete(H3270 *hSession, unsigned long length,double kbytes_sec, const char *msg, void *widget)
212   -{
213   - v3270_ft_progress_complete(GTK_WIDGET(widget),length,kbytes_sec);
214   - v3270_ft_progress_set_message(GTK_WIDGET(widget),gettext(msg));
215   -}
216   -
217   -static void ft_message(H3270 *hSession, const char *text, void *widget)
218   -{
219   - v3270_ft_progress_set_message(GTK_WIDGET(widget),gettext(text));
220   -}
221   -
222   -static void ft_update(H3270 *hSession, unsigned long current, unsigned long length, double kbytes_sec, void *widget)
223   -{
224   - v3270_ft_progress_update(GTK_WIDGET(widget), current, length, kbytes_sec);
225   -}
226   -
227   -void download_action(GtkAction *action, GtkWidget *widget)
228   -{
229   - const gchar *name = g_object_get_data(G_OBJECT(action),"configuration");
230   -
231   - if(!name)
232   - name = "download";
233   -
234   - if(lib3270_get_ft_state(v3270_get_session(widget)) != LIB3270_FT_STATE_NONE)
235   - {
236   - lib3270_popup_dialog( v3270_get_session(widget),
237   - LIB3270_NOTIFY_ERROR,
238   - _( "Request failed" ),
239   - _( "Can't start download." ),
240   - "%s",
241   - _( "File transfer is already active." ));
242   -
243   - return;
244   - }
245   -
246   - GtkWidget *dialog = v3270_ft_dialog_new(widget,LIB3270_FT_OPTION_RECEIVE|get_options_from_config(name));
247   -
248   - v3270_ft_dialog_set_tso(dialog,lib3270_is_tso(v3270_get_session(widget)));
249   -
250   - ft_dialog_load(dialog,name);
251   -
252   - if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
253   - {
254   - ft_dialog_save(dialog,name);
255   - gtk_widget_hide(dialog);
256   -
257   - v3270_transfer_file(
258   - widget,
259   - v3270_ft_dialog_get_options(dialog),
260   - v3270_ft_dialog_get_local_filename(dialog),
261   - v3270_ft_dialog_get_host_filename(dialog),
262   - v3270_ft_dialog_get_record_length(dialog),
263   - v3270_ft_dialog_get_block_size(dialog),
264   - v3270_ft_dialog_get_primary_space(dialog),
265   - v3270_ft_dialog_get_secondary_space(dialog),
266   - v3270_ft_dialog_get_dft_buffer_size(dialog)
267   - );
268   -
269   - }
270   -
271   - gtk_widget_destroy(dialog);
272   -
273   -}
274   -
275   -void upload_action(GtkAction *action, GtkWidget *widget)
276   -{
277   - const gchar *name = g_object_get_data(G_OBJECT(action),"configuration");
278   -
279   - if(!name)
280   - name = "upload";
281   -
282   - if(lib3270_get_ft_state(v3270_get_session(widget)) != LIB3270_FT_STATE_NONE)
283   - {
284   - lib3270_popup_dialog( v3270_get_session(widget),
285   - LIB3270_NOTIFY_ERROR,
286   - _( "Request failed" ),
287   - _( "Can't start upload." ),
288   - "%s",
289   - _( "File transfer is already active." ));
290   -
291   - return;
292   - }
293   -
294   - GtkWidget *dialog = v3270_ft_dialog_new(widget,LIB3270_FT_OPTION_SEND|get_options_from_config(name));
295   -
296   - v3270_ft_dialog_set_tso(dialog,lib3270_is_tso(v3270_get_session(widget)));
297   - ft_dialog_load(dialog,name);
298   -
299   - if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
300   - {
301   - ft_dialog_save(dialog,name);
302   - gtk_widget_hide(dialog);
303   -
304   - v3270_transfer_file(
305   - widget,
306   - v3270_ft_dialog_get_options(dialog),
307   - v3270_ft_dialog_get_local_filename(dialog),
308   - v3270_ft_dialog_get_host_filename(dialog),
309   - v3270_ft_dialog_get_record_length(dialog),
310   - v3270_ft_dialog_get_block_size(dialog),
311   - v3270_ft_dialog_get_primary_space(dialog),
312   - v3270_ft_dialog_get_secondary_space(dialog),
313   - v3270_ft_dialog_get_dft_buffer_size(dialog)
314   - );
315   - }
316   -
317   - gtk_widget_destroy(dialog);
318   -
319   -}
320   -
321   -*/
src/pw3270/ft/ft.cbp
... ... @@ -1,63 +0,0 @@
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 FT Dialogs" />
6   - <Option makefile_is_custom="1" />
7   - <Option pch_mode="2" />
8   - <Option compiler="gcc" />
9   - <Build>
10   - <Target title="Debug">
11   - <Option output=".bin/Debug/ft3270" prefix_auto="1" extension_auto="1" />
12   - <Option object_output=".obj/Debug/" />
13   - <Option type="1" />
14   - <Option compiler="gcc" />
15   - <Compiler>
16   - <Add option="-g" />
17   - <Add option="-DDEBUG=1" />
18   - </Compiler>
19   - </Target>
20   - <Target title="Release">
21   - <Option output=".bin/Release/ft3270" prefix_auto="1" extension_auto="1" />
22   - <Option object_output=".obj/Release/" />
23   - <Option type="1" />
24   - <Option compiler="gcc" />
25   - <Compiler>
26   - <Add option="-O2" />
27   - </Compiler>
28   - <Linker>
29   - <Add option="-s" />
30   - </Linker>
31   - </Target>
32   - </Build>
33   - <Compiler>
34   - <Add option="-Wall" />
35   - <Add option="`pkg-config --cflags gtk+-3.0`" />
36   - <Add directory="../../include" />
37   - </Compiler>
38   - <Linker>
39   - <Add option="`pkg-config --libs gtk+-3.0`" />
40   - </Linker>
41   - <Unit filename="Makefile.in" />
42   - <Unit filename="browse.c">
43   - <Option compilerVar="CC" />
44   - </Unit>
45   - <Unit filename="ftdialog.c">
46   - <Option compilerVar="CC" />
47   - </Unit>
48   - <Unit filename="ftprogress.c">
49   - <Option compilerVar="CC" />
50   - </Unit>
51   - <Unit filename="private.h" />
52   - <Unit filename="testprogram.c">
53   - <Option compilerVar="CC" />
54   - </Unit>
55   - <Unit filename="v3270ft.h" />
56   - <Extensions>
57   - <code_completion />
58   - <envvars />
59   - <debugger />
60   - <lib_finder disable_auto="1" />
61   - </Extensions>
62   - </Project>
63   -</CodeBlocks_project_file>
src/pw3270/ft/ftdialog.c
... ... @@ -1,833 +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 ftdialog.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   - #include "private.h"
31   -
32   - G_DEFINE_TYPE(v3270FTD, v3270FTD, GTK_TYPE_DIALOG);
33   -
34   - struct ftoptions
35   - {
36   - LIB3270_FT_OPTION flag;
37   - enum _button id;
38   - const gchar * label;
39   - const gchar * tooltip;
40   - };
41   -
42   - struct rdoptions
43   - {
44   - LIB3270_FT_OPTION flag;
45   - const gchar * label;
46   - const gchar * tooltip;
47   - };
48   -
49   - struct ftvalues
50   - {
51   - int id;
52   - const gchar * label;
53   - const gchar * tooltip;
54   - };
55   -
56   -/*--[ Implement ]------------------------------------------------------------------------------------*/
57   -
58   -/*
59   -static void v3270FTD_class_init(v3270FTDClass *klass)
60   -{
61   -// GtkDialogClass * widget_class = GTK_DIALOG_CLASS(klass);
62   -
63   -#if GTK_CHECK_VERSION(3,0,0)
64   -#else
65   -#endif // GTK_CHECK_VERSION
66   -
67   -}
68   -
69   -static void v3270FTD_init(v3270FTD *widget)
70   -{
71   -}
72   -
73   -static void toggle_option(GtkToggleButton *button, v3270FTD *dialog)
74   -{
75   - const struct ftoptions *opt = (const struct ftoptions *) g_object_get_data(G_OBJECT(button),"cfg");
76   -
77   - if(gtk_toggle_button_get_active(button))
78   - dialog->options |= opt->flag;
79   - else
80   - dialog->options &= ~opt->flag;
81   -
82   -// g_message("Option \"%s\" is %s flag=%08lx",opt->label,gtk_toggle_button_get_active(button) ? "ON" : "OFF", (unsigned long) opt->flag);
83   -
84   -}
85   -
86   -static GtkWidget * ftoption_new(v3270FTD *dialog, const struct ftoptions *opt)
87   -{
88   - GtkContainer * frame = GTK_CONTAINER(gtk_frame_new(_("Transfer options")));
89   - int f;
90   -
91   -#if GTK_CHECK_VERSION(3,0,0)
92   -
93   - GtkGrid * grid = GTK_GRID(gtk_grid_new());
94   -
95   - gtk_grid_set_row_homogeneous(grid,TRUE);
96   - gtk_grid_set_column_homogeneous(grid,TRUE);
97   - gtk_grid_set_column_spacing(grid,5);
98   - gtk_grid_set_row_spacing(grid,5);
99   -
100   -#else
101   -
102   - GtkTable * grid = GTK_TABLE(gtk_table_new(2,3,FALSE));
103   -
104   - gtk_table_set_row_spacings(grid,5);
105   - gtk_table_set_col_spacings(grid,5);
106   -
107   -#endif // GTK_CHECK_VERSION
108   -
109   -
110   - for(f=0;opt[f].label;f++)
111   - {
112   - GtkWidget * button = gtk_check_button_new_with_mnemonic(gettext(opt[f].label));
113   - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),(dialog->options & opt[f].flag) != 0);
114   - gtk_widget_set_tooltip_text(GTK_WIDGET(button),gettext(opt[f].tooltip));
115   -#if GTK_CHECK_VERSION(3,0,0)
116   - gtk_widget_set_hexpand(button,TRUE);
117   - gtk_grid_attach(grid,button,f&1,f/2,1,1);
118   -#else
119   - gtk_table_attach_defaults(grid,button,f&1,(f&1)+1,f/2,(f/2)+1);
120   -#endif // GTK_CHECK_VERSION
121   - g_object_set_data(G_OBJECT(button),"cfg",(gpointer) &opt[f]);
122   - g_signal_connect(G_OBJECT(button),"toggled",G_CALLBACK(toggle_option),dialog);
123   - dialog->button[opt->id] = GTK_TOGGLE_BUTTON(button);
124   - }
125   -
126   - gtk_container_add(frame,GTK_WIDGET(grid));
127   -
128   - return GTK_WIDGET(frame);
129   -}
130   -
131   -#if GTK_CHECK_VERSION(3,0,0)
132   -static GtkWidget * ftvalue_new(v3270FTD *dialog, GtkGrid *grid, int r, const struct ftvalues *val)
133   -#else
134   -static GtkWidget * ftvalue_new(v3270FTD *dialog, GtkTable *grid, int r, const struct ftvalues *val)
135   -#endif // GTK_CHECK_VERSION
136   -{
137   - int f;
138   -
139   - for(f=0;val[f].label;f++)
140   - {
141   - int col = (f&1)*2;
142   - int row = (f/2)+r;
143   - int id = val[f].id;
144   - GtkWidget * label = gtk_label_new_with_mnemonic(gettext(val[f].label));
145   -
146   - dialog->value[id] = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(0,99999,1));
147   -
148   - gtk_misc_set_alignment(GTK_MISC(label),0,0.5);
149   -
150   - gtk_label_set_mnemonic_widget(GTK_LABEL(label),GTK_WIDGET(dialog->value[id]));
151   -
152   - if(val[f].tooltip && *val[f].tooltip)
153   - {
154   - gtk_widget_set_tooltip_text(GTK_WIDGET(label),gettext(val[f].tooltip));
155   - gtk_widget_set_tooltip_text(GTK_WIDGET(dialog->value[id]),gettext(val[f].tooltip));
156   - }
157   -
158   - g_object_set_data(G_OBJECT(dialog->value[id]),"cfg",(gpointer) &val[f]);
159   -
160   -#if GTK_CHECK_VERSION(3,0,0)
161   - gtk_widget_set_hexpand(GTK_WIDGET(label),TRUE);
162   - gtk_grid_attach(grid,GTK_WIDGET(label),col,row,1,1);
163   - gtk_grid_attach(grid,GTK_WIDGET(dialog->value[id]),col+1,row,1,1);
164   -#else
165   - gtk_table_attach(grid,GTK_WIDGET(label),col,col+1,row,row+1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
166   - gtk_table_attach(grid,GTK_WIDGET(dialog->value[id]),col+1,col+2,row,row+1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
167   -#endif // GTK_CHECK_VERSION
168   -
169   -
170   - }
171   -
172   - return GTK_WIDGET(grid);
173   -
174   -}
175   -
176   -static GtkWidget * ftradio_new(v3270FTD *dialog, GtkToggleButton **button, LIB3270_FT_OPTION option, const gchar *title, const gchar *tooltip, const struct rdoptions *opt)
177   -{
178   - GtkContainer * frame = GTK_CONTAINER(gtk_frame_new(title));
179   -#if GTK_CHECK_VERSION(3,0,0)
180   - GtkBox * box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2));
181   -#else
182   - GtkBox * box = GTK_BOX(gtk_hbox_new(FALSE,2));
183   -#endif // GTK_CHECK_VERSION
184   - GSList * lst = NULL;
185   - int f;
186   -
187   - for(f=0;opt[f].label;f++)
188   - {
189   - button[f] = GTK_TOGGLE_BUTTON(gtk_radio_button_new_with_label(lst,gettext(opt[f].label)));
190   - gtk_toggle_button_set_active(button[f],(dialog->options & opt[f].flag) == opt[f].flag);
191   - if(opt[f].tooltip)
192   - gtk_widget_set_tooltip_text(GTK_WIDGET(button[f]),gettext(opt[f].tooltip));
193   -
194   - g_object_set_data(G_OBJECT(button[f]),"cfg",(gpointer) &opt[f]);
195   - g_signal_connect(G_OBJECT(button[f]),"toggled",G_CALLBACK(toggle_option),dialog);
196   -
197   - gtk_box_pack_start(box,GTK_WIDGET(button[f]),FALSE,TRUE,2);
198   - lst = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button[f]));
199   - }
200   -
201   - gtk_widget_set_tooltip_text(GTK_WIDGET(frame),tooltip);
202   - gtk_container_add(frame,GTK_WIDGET(box));
203   - return GTK_WIDGET(frame);
204   -}
205   -
206   -static void test_remote_file(GtkEditable *editable, v3270FTD *dialog)
207   -{
208   -#if GTK_CHECK_VERSION(3,2,0)
209   - if(!gtk_entry_get_text_length(GTK_ENTRY(dialog->filename[FILENAME_LOCAL])))
210   - {
211   - gchar *basename = g_path_get_basename(gtk_entry_get_text(GTK_ENTRY(editable)));
212   - gchar *filename = g_build_filename(g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS),basename,NULL);
213   - gtk_entry_set_placeholder_text(GTK_ENTRY(dialog->filename[FILENAME_LOCAL]),filename);
214   - g_free(filename);
215   - g_free(basename);
216   - }
217   -#endif // GTK(3,2)
218   -
219   - dialog->remote = gtk_entry_get_text_length(GTK_ENTRY(dialog->filename[FILENAME_HOST])) > 0;
220   - gtk_widget_set_sensitive(dialog->ready,dialog->local && dialog->remote);
221   -
222   -}
223   -
224   -static void test_file_exists(GtkEditable *editable, v3270FTD *dialog)
225   -{
226   - const gchar *filename = gtk_entry_get_text(GTK_ENTRY(dialog->filename[FILENAME_LOCAL]));
227   - dialog->local = g_file_test(filename,G_FILE_TEST_EXISTS);
228   -
229   -#if GTK_CHECK_VERSION(3,2,0)
230   - if(dialog->local && !gtk_entry_get_text_length(GTK_ENTRY(dialog->filename[FILENAME_HOST])))
231   - {
232   - gchar *basename = g_path_get_basename(gtk_entry_get_text(GTK_ENTRY(editable)));
233   - gtk_entry_set_placeholder_text(GTK_ENTRY(dialog->filename[FILENAME_HOST]),basename);
234   - g_free(basename);
235   - }
236   -#endif // GTK(3,2)
237   -
238   - gtk_widget_set_sensitive(dialog->ready,dialog->local && dialog->remote);
239   -
240   -}
241   -
242   -static void test_path_exists(GtkEditable *editable, v3270FTD *dialog)
243   -{
244   - const gchar *filename = gtk_entry_get_text(GTK_ENTRY(dialog->filename[FILENAME_LOCAL]));
245   -
246   - if(!*filename)
247   - {
248   - dialog->local = FALSE;
249   - }
250   - else
251   - {
252   - gchar *dirname = g_path_get_dirname(filename);
253   - dialog->local = g_file_test(dirname,G_FILE_TEST_IS_DIR);
254   - g_free(dirname);
255   -
256   - }
257   -
258   - gtk_widget_set_sensitive(dialog->ready,dialog->local && dialog->remote);
259   -}
260   -
261   -GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options)
262   -{
263   - v3270FTD *dialog = g_object_new(GTK_TYPE_V3270FTD, NULL);
264   -
265   - if(parent)
266   - gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(gtk_widget_get_toplevel(parent)));
267   -
268   - // Set defaults
269   - dialog->options = options;
270   -
271   - // Filename entry
272   - int f;
273   -
274   - GtkWidget * label[FILENAME_COUNT] =
275   - {
276   - gtk_label_new_with_mnemonic( _( "_Local file name:" ) ),
277   - gtk_label_new_with_mnemonic( _( "_Host file name:" ) )
278   - };
279   -
280   - for(f=0;f<FILENAME_COUNT;f++)
281   - {
282   - dialog->filename[f] = gtk_entry_new();
283   - gtk_label_set_mnemonic_widget(GTK_LABEL(label[f]),dialog->filename[f]);
284   -#if GTK_CHECK_VERSION(3,0,0)
285   - gtk_widget_set_hexpand(dialog->filename[f],TRUE);
286   -#endif // GTK_CHECK_VERSION
287   - }
288   -
289   -#if GTK_CHECK_VERSION(3,0,0)
290   -
291   - GtkGrid *grid = GTK_GRID(gtk_grid_new());
292   -
293   - gtk_grid_set_row_homogeneous(grid,FALSE);
294   - gtk_grid_set_column_homogeneous(grid,FALSE);
295   - gtk_grid_set_column_spacing(grid,5);
296   - gtk_grid_set_row_spacing(grid,5);
297   -
298   -#else
299   - GtkTable *grid = gtk_table_new(2,3,FALSE);
300   -
301   - gtk_table_set_row_spacings(grid,5);
302   - gtk_table_set_col_spacings(grid,5);
303   -
304   -#endif // GTK_CHECK_VERSION
305   -
306   -
307   -#if GTK_CHECK_VERSION(3,10,0)
308   - GtkButton * browse = GTK_BUTTON(gtk_button_new_from_icon_name("text-x-generic",GTK_ICON_SIZE_BUTTON));
309   -#else
310   - GtkButton * browse = GTK_BUTTON(gtk_button_new_with_mnemonic(_( "_Browse" )));
311   -#endif // GTK_CHECK_VERSION
312   -
313   - gtk_button_set_focus_on_click(browse,FALSE);
314   - gtk_widget_set_tooltip_text(GTK_WIDGET(browse),_("Select file"));
315   - g_signal_connect(G_OBJECT(browse),"clicked",G_CALLBACK(browse_file),dialog);
316   -
317   - gtk_widget_set_tooltip_text(gtk_dialog_add_button(GTK_DIALOG(dialog),_( "_Cancel" ), GTK_RESPONSE_CANCEL),
318   - (dialog->options & LIB3270_FT_OPTION_RECEIVE) != 0 ? _("Cancel download.") : _("Cancel upload."));
319   -
320   -
321   - dialog->ready = gtk_dialog_add_button(GTK_DIALOG(dialog),
322   - (dialog->options & LIB3270_FT_OPTION_RECEIVE) != 0 ? _( "_Receive") : _( "_Send" ),
323   - GTK_RESPONSE_ACCEPT);
324   - gtk_widget_set_sensitive(dialog->ready,FALSE);
325   -
326   - gtk_widget_set_tooltip_text(GTK_WIDGET(dialog->ready),
327   - (dialog->options & LIB3270_FT_OPTION_RECEIVE) != 0 ? _("Start download.") : _("Start upload."));
328   -
329   -
330   - g_signal_connect(G_OBJECT(dialog->filename[FILENAME_HOST]),"changed",G_CALLBACK(test_remote_file),dialog);
331   -
332   - if(options & LIB3270_FT_OPTION_RECEIVE)
333   - {
334   - // It's receiving file first host filename, then local filename
335   - gtk_window_set_title(GTK_WINDOW(dialog),_( "Receive file from host" ));
336   -
337   - g_signal_connect(G_OBJECT(dialog->filename[FILENAME_LOCAL]),"changed",G_CALLBACK(test_path_exists),dialog);
338   -
339   -
340   -#if GTK_CHECK_VERSION(3,0,0)
341   -
342   - gtk_grid_attach(grid,label[FILENAME_HOST],0,0,1,1);
343   - gtk_grid_attach(grid,label[FILENAME_LOCAL],0,1,1,1);
344   -
345   - gtk_grid_attach(grid,dialog->filename[FILENAME_HOST],1,0,3,1);
346   - gtk_grid_attach(grid,dialog->filename[FILENAME_LOCAL],1,1,3,1);
347   -
348   - gtk_grid_attach(grid,GTK_WIDGET(browse),5,1,1,1);
349   -
350   -#else
351   -
352   - gtk_table_attach(grid,label[FILENAME_HOST],0,1,0,1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
353   - gtk_table_attach(grid,label[FILENAME_LOCAL],0,1,1,2,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
354   -
355   - gtk_table_attach(grid,dialog->filename[FILENAME_HOST],1,2,0,1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
356   - gtk_table_attach(grid,dialog->filename[FILENAME_LOCAL],1,2,1,2,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
357   -
358   - gtk_table_attach(grid,GTK_WIDGET(browse),2,3,1,2,GTK_FILL,GTK_FILL,0,0);
359   -
360   -#endif
361   -
362   - gtk_widget_set_tooltip_text(dialog->filename[FILENAME_HOST],_("Name of the source file."));
363   - gtk_widget_set_tooltip_text(dialog->filename[FILENAME_LOCAL],_("Where to save the received file."));
364   -
365   - gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(grid),FALSE,TRUE,2);
366   -
367   - // Create options box
368   - static const struct ftoptions opt[] =
369   - {
370   - {
371   - LIB3270_FT_OPTION_ASCII,
372   - BUTTON_ASCII,
373   - N_( "_Text file." ),
374   - N_( "Check this if the file consists of character data only.")
375   - },
376   - {
377   - LIB3270_FT_OPTION_CRLF,
378   - BUTTON_CRLF,
379   - N_( "Follow the convention for ASCII text files." ),
380   -#ifdef _WIN32
381   - N_( "Following the convention for ASCII text files, <CR> <LF> pairs are used to terminate records in the PC file, and a CTRL-Z (x'1A') marks the end of file.")
382   -#else
383   - N_( "Following the convention for ASCII text files, <LF> is used to terminate records in the PC file.")
384   -#endif // _WIN32
385   - },
386   - {
387   - LIB3270_FT_OPTION_APPEND,
388   - BUTTON_APPEND,
389   - N_( "_Append to destination" ),
390   - N_( "Appends the source file to the destination file.")
391   - },
392   - {
393   - LIB3270_FT_OPTION_REMAP,
394   - BUTTON_REMAP,
395   - N_("Re_map to ASCII Characters."),
396   - N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.")
397   - },
398   - {
399   - 0,
400   - 0,
401   - NULL,
402   - NULL
403   - }
404   - };
405   -
406   - gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),ftoption_new(dialog,opt),FALSE,TRUE,2);
407   -
408   - // Create DFT
409   -#if GTK_CHECK_VERSION(3,0,0)
410   - GtkBox * box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL,2));
411   -#else
412   - GtkBox * box = GTK_BOX(gtk_hbox_new(FALSE,2));
413   -#endif // GTK_CHECK_VERSION
414   -
415   - GtkWidget * label = gtk_label_new_with_mnemonic(_("DFT B_uffer size:"));
416   - dialog->value[VALUE_DFT] = GTK_SPIN_BUTTON(gtk_spin_button_new_with_range(256,32768,1));
417   - gtk_misc_set_alignment(GTK_MISC(label),0,0.5);
418   -
419   - gtk_label_set_mnemonic_widget(GTK_LABEL(label),GTK_WIDGET(dialog->value[VALUE_DFT]));
420   -
421   - gtk_box_pack_start(box,label,FALSE,TRUE,2);
422   - gtk_box_pack_start(box,GTK_WIDGET(dialog->value[VALUE_DFT]),FALSE,TRUE,2);
423   -
424   - gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(box),FALSE,TRUE,2);
425   -
426   - }
427   - else
428   - {
429   - // It's sending file first local filename, then hostfilename
430   - gtk_window_set_title(GTK_WINDOW(dialog),_( "Send file to host" ));
431   - g_signal_connect(G_OBJECT(dialog->filename[FILENAME_LOCAL]),"changed",G_CALLBACK(test_file_exists),dialog);
432   -
433   -#if GTK_CHECK_VERSION(3,0,0)
434   -
435   - gtk_grid_attach(grid,label[FILENAME_LOCAL],0,0,1,1);
436   - gtk_grid_attach(grid,label[FILENAME_HOST],0,1,1,1);
437   -
438   - gtk_grid_attach(grid,dialog->filename[FILENAME_LOCAL],1,0,3,1);
439   - gtk_grid_attach(grid,GTK_WIDGET(browse),5,0,1,1);
440   -
441   - gtk_grid_attach(grid,dialog->filename[FILENAME_HOST],1,1,3,1);
442   -
443   -#else
444   -
445   - gtk_table_attach(grid,label[FILENAME_LOCAL],0,1,0,1,GTK_FILL,GTK_FILL,0,0);
446   - gtk_table_attach(grid,label[FILENAME_HOST],0,1,1,2,GTK_FILL,GTK_FILL,0,0);
447   -
448   - gtk_table_attach(grid,dialog->filename[FILENAME_LOCAL],1,2,0,1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
449   - gtk_table_attach(grid,dialog->filename[FILENAME_HOST],1,2,1,2,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
450   -
451   - gtk_table_attach(grid,GTK_WIDGET(browse),2,3,0,1,GTK_FILL,GTK_FILL,0,0);
452   -
453   -#endif // GTK_CHECK_VERSION
454   -
455   -
456   - gtk_widget_set_tooltip_text(dialog->filename[FILENAME_HOST],_("Name of the target file."));
457   - gtk_widget_set_tooltip_text(dialog->filename[FILENAME_LOCAL],_("Path of the local file to send."));
458   -
459   - gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(grid),FALSE,TRUE,2);
460   -
461   - // Create options box
462   - static const struct ftoptions opt[] =
463   - {
464   - {
465   - LIB3270_FT_OPTION_ASCII,
466   - BUTTON_ASCII,
467   - N_( "_Text file." ),
468   - N_( "Check this if the file consists of character data only.")
469   - },
470   - {
471   - LIB3270_FT_OPTION_CRLF,
472   - BUTTON_CRLF,
473   - N_( "Follow the convention for ASCII text files." ),
474   -#ifdef _WIN32
475   - N_( "Following the convention for ASCII text files, <CR> <LF> pairs are used to terminate records in the PC file, and a CTRL-Z (x'1A') marks the end of file.")
476   -#else
477   - N_( "Following the convention for ASCII text files, <LF> is used to terminate records in the PC file.")
478   -#endif // _WIN32
479   - },
480   - {
481   - LIB3270_FT_OPTION_APPEND,
482   - BUTTON_APPEND,
483   - N_( "_Append to destination" ),
484   - N_( "Appends the source file to the destination file.")
485   - },
486   - {
487   - LIB3270_FT_OPTION_REMAP,
488   - BUTTON_REMAP,
489   - N_("Re_map to EBCDIC Characters."),
490   - N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.")
491   - },
492   - {
493   - 0,
494   - 0,
495   - NULL,
496   - NULL
497   - }
498   - };
499   -
500   - gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),ftoption_new(dialog,opt),FALSE,TRUE,2);
501   -
502   -
503   - // Create format box
504   -
505   -#if GTK_CHECK_VERSION(3,0,0)
506   -
507   - GtkGrid * grid = GTK_GRID(gtk_grid_new());
508   - gtk_grid_set_column_spacing(grid,5);
509   - gtk_grid_set_row_spacing(grid,5);
510   -
511   -#else
512   - GtkTable *grid = GTK_TABLE(gtk_table_new(4,4,FALSE));
513   -
514   - gtk_table_set_row_spacings(grid,5);
515   - gtk_table_set_col_spacings(grid,5);
516   -
517   -#endif // GTK_CHECK_VERSION
518   -
519   - // Create record format box
520   - static const struct rdoptions recfm[] =
521   - {
522   - {
523   - LIB3270_FT_RECORD_FORMAT_DEFAULT,
524   - N_("Default"),
525   - N_("Use host default record format.")
526   - },
527   - {
528   - LIB3270_FT_RECORD_FORMAT_FIXED,
529   - N_("Fixed"),
530   - N_("Creates a file with fixed-length records.")
531   - },
532   - {
533   - LIB3270_FT_RECORD_FORMAT_VARIABLE,
534   - N_("Variable"),
535   - N_("Creates a file with variable-length records.")
536   - },
537   - {
538   - LIB3270_FT_RECORD_FORMAT_UNDEFINED,
539   - N_("Undefined"),
540   - N_("Creates a file with undefined-length records (TSO hosts only).")
541   - },
542   - {
543   - 0,
544   - NULL,
545   - NULL
546   - }
547   - };
548   -
549   -#if GTK_CHECK_VERSION(3,0,0)
550   - gtk_grid_attach( grid,
551   - ftradio_new(dialog,dialog->recfm,dialog->options,_("Record format"),_("Specifies the record format of the data set."),recfm),
552   - 0,0,2,1
553   - );
554   -#else
555   - gtk_table_attach( grid,
556   - ftradio_new(dialog,dialog->recfm,dialog->options,_("Record format"),_("Specifies the record format of the data set."),recfm),
557   - 0,2,0,1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0
558   - );
559   -#endif // GTK_CHECK_VERSION
560   -
561   -
562   -
563   - // Create allocation unit box
564   - static const struct rdoptions units[] =
565   - {
566   - {
567   - LIB3270_FT_ALLOCATION_UNITS_DEFAULT,
568   - N_("Default"),
569   - NULL
570   - },
571   - {
572   - LIB3270_FT_ALLOCATION_UNITS_TRACKS,
573   - N_("Tracks"),
574   - NULL
575   - },
576   - {
577   - LIB3270_FT_ALLOCATION_UNITS_CYLINDERS,
578   - N_("Cylinders"),
579   - NULL
580   - },
581   - {
582   - LIB3270_FT_ALLOCATION_UNITS_AVBLOCK,
583   - N_("Avblock"),
584   - NULL
585   - },
586   - {
587   - 0,
588   - NULL,
589   - NULL
590   - }
591   - };
592   -
593   - dialog->units = ftradio_new(dialog,dialog->btnUnits,dialog->options,_("Space allocation units"),_("Specifies the units for the TSO host primary and secondary space options."),units);
594   -
595   -#if GTK_CHECK_VERSION(3,0,0)
596   - gtk_grid_attach( grid,
597   - dialog->units,
598   - 2,0,2,1
599   - );
600   -#else
601   - gtk_table_attach( grid,
602   - dialog->units,
603   - 2,4,0,1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0
604   - );
605   -#endif // GTK_CHECK_VERSION
606   -
607   - // Create values box
608   - static const struct ftvalues val[] =
609   - {
610   - {
611   - VALUE_LRECL,
612   - N_( "Record Length:" ),
613   - N_( "Specifies the record length (or maximum record length) for files created on the host." )
614   - },
615   -
616   -
617   - {
618   - VALUE_PRIMSPACE,
619   - N_( "Primary space:" ),
620   - N_( "Primary allocation for a file created on a TSO host.\nThe units are given by the space allocation units option." )
621   - },
622   -
623   - {
624   - VALUE_BLKSIZE,
625   - N_( "Block size:" ),
626   - N_( "Specifies the block size (n) for a new data set. For data sets containing fixed " \
627   - "length records, the block size must be a multiple of the record length. " \
628   - "For data sets containing variable length records, the block size must be " \
629   - "greater than or equal to the record length plus four bytes. The block size " \
630   - "must not exceed the track length of the device on which the data set resides." )
631   - },
632   -
633   - {
634   - VALUE_SECSPACE,
635   - N_( "Secondary space:" ),
636   - N_( "Secondary allocation for a file created on a TSO host.\nThe units are given by the space allocation units option." )
637   - },
638   -
639   - {
640   - VALUE_DFT,
641   - N_( "DFT B_uffer size:" ),
642   - ""
643   - },
644   -
645   - {
646   - 0,
647   - NULL,
648   - NULL
649   - }
650   - };
651   -
652   - ftvalue_new(dialog,grid,1,val);
653   -
654   - gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),GTK_WIDGET(grid),FALSE,TRUE,2);
655   -
656   - gtk_spin_button_set_range(dialog->value[VALUE_DFT],256,32768);
657   - }
658   -
659   - gtk_widget_set_tooltip_text(GTK_WIDGET(dialog->value[VALUE_DFT]),_( "Buffer size for DFT-mode transfers. Can range from 256 to 32768. Larger values give better performance, but some hosts may not be able to support them."));
660   - gtk_spin_button_set_value(dialog->value[VALUE_DFT],4096);
661   -
662   - // Setup limits
663   - if(dialog->value[VALUE_LRECL])
664   - gtk_spin_button_set_range(dialog->value[VALUE_LRECL],0,32760);
665   -
666   - if(dialog->value[VALUE_BLKSIZE])
667   - gtk_spin_button_set_range(dialog->value[VALUE_BLKSIZE],0,32760);
668   -
669   -
670   - gtk_widget_show_all(gtk_dialog_get_content_area(GTK_DIALOG(dialog)));
671   -
672   - return GTK_WIDGET(dialog);
673   -}
674   -
675   -void v3270_ft_dialog_set_host_filename(GtkWidget *widget, const gchar *name)
676   -{
677   - g_return_if_fail(GTK_IS_V3270FTD(widget));
678   - gtk_entry_set_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_HOST]),name);
679   -}
680   -
681   -void v3270_ft_dialog_set_local_filename(GtkWidget *widget, const gchar *name)
682   -{
683   - g_return_if_fail(GTK_IS_V3270FTD(widget));
684   - gtk_entry_set_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_LOCAL]),name);
685   -}
686   -
687   -const gchar * v3270_ft_dialog_get_host_filename(GtkWidget *widget)
688   -{
689   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),NULL);
690   - return gtk_entry_get_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_HOST]));
691   -}
692   -
693   -const gchar * v3270_ft_dialog_get_local_filename(GtkWidget *widget)
694   -{
695   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),NULL);
696   - return gtk_entry_get_text(GTK_ENTRY(GTK_V3270FTD(widget)->filename[FILENAME_LOCAL]));
697   -}
698   -
699   -LIB3270_FT_OPTION v3270_ft_dialog_get_options(GtkWidget *widget)
700   -{
701   - LIB3270_FT_OPTION opt;
702   -
703   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),0);
704   -
705   - opt = GTK_V3270FTD(widget)->options;
706   -
707   -#ifndef _WIN32
708   - if( (opt & (LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF)) == (LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF) )
709   - {
710   - opt |= LIB3270_FT_OPTION_UNIX;
711   - }
712   -#endif // _WIN32
713   -
714   - return opt;
715   -}
716   -
717   -void v3270_ft_dialog_set_options(GtkWidget *widget,LIB3270_FT_OPTION options)
718   -{
719   - g_return_if_fail(GTK_IS_V3270FTD(widget));
720   - int f;
721   -
722   - for(f=0;f<BUTTON_COUNT;f++)
723   - {
724   - GtkToggleButton *button = GTK_V3270FTD(widget)->button[f];
725   - if(button)
726   - {
727   - const struct ftoptions * opt = (const struct ftoptions *) g_object_get_data(G_OBJECT(button),"cfg");
728   - gtk_toggle_button_set_active(button,(options & opt->flag) != 0);
729   - }
730   - }
731   -
732   - #warning Implementar
733   -}
734   -
735   -void v3270_ft_dialog_set_tso(GtkWidget *widget,gboolean flag)
736   -{
737   - g_return_if_fail(GTK_IS_V3270FTD(widget));
738   -
739   - v3270FTD *dialog = GTK_V3270FTD(widget);
740   -
741   - GtkWidget *tsoWidget[] =
742   - {
743   - GTK_WIDGET(dialog->value[VALUE_BLKSIZE]),
744   - GTK_WIDGET(dialog->value[VALUE_PRIMSPACE]),
745   - GTK_WIDGET(dialog->value[VALUE_SECSPACE]),
746   - GTK_WIDGET(dialog->units),
747   - GTK_WIDGET(dialog->recfm[3]),
748   - };
749   -
750   - int f;
751   -
752   - for(f=0;f<G_N_ELEMENTS(tsoWidget);f++)
753   - {
754   - if(tsoWidget[f])
755   - gtk_widget_set_sensitive(tsoWidget[f],flag);
756   - }
757   -
758   -}
759   -
760   -LIB3270_EXPORT void v3270_ft_dialog_set_dft_buffer_size(GtkWidget *widget, gint value)
761   -{
762   - g_return_if_fail(GTK_IS_V3270FTD(widget));
763   - gtk_spin_button_set_value(GTK_V3270FTD(widget)->value[VALUE_DFT],value);
764   -}
765   -
766   -LIB3270_EXPORT void v3270_ft_dialog_set_record_length(GtkWidget *widget, gint value)
767   -{
768   - g_return_if_fail(GTK_IS_V3270FTD(widget));
769   - if(GTK_V3270FTD(widget)->value[VALUE_LRECL])
770   - gtk_spin_button_set_value(GTK_V3270FTD(widget)->value[VALUE_LRECL],value);
771   -}
772   -
773   -LIB3270_EXPORT void v3270_ft_dialog_set_block_size(GtkWidget *widget, gint value)
774   -{
775   - g_return_if_fail(GTK_IS_V3270FTD(widget));
776   - if(GTK_V3270FTD(widget)->value[VALUE_BLKSIZE])
777   - gtk_spin_button_set_value(GTK_V3270FTD(widget)->value[VALUE_BLKSIZE],value);
778   -}
779   -
780   -LIB3270_EXPORT void v3270_ft_dialog_set_primary_space(GtkWidget *widget, gint value)
781   -{
782   - g_return_if_fail(GTK_IS_V3270FTD(widget));
783   - if(GTK_V3270FTD(widget)->value[VALUE_PRIMSPACE])
784   - gtk_spin_button_set_value(GTK_V3270FTD(widget)->value[VALUE_PRIMSPACE],value);
785   -}
786   -
787   -LIB3270_EXPORT void v3270_ft_dialog_set_secondary_space(GtkWidget *widget, gint value)
788   -{
789   - g_return_if_fail(GTK_IS_V3270FTD(widget));
790   - if(GTK_V3270FTD(widget)->value[VALUE_SECSPACE])
791   - gtk_spin_button_set_value(GTK_V3270FTD(widget)->value[VALUE_SECSPACE],value);
792   -}
793   -
794   -LIB3270_EXPORT gint v3270_ft_dialog_get_dft_buffer_size(GtkWidget *widget)
795   -{
796   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),0);
797   - return gtk_spin_button_get_value_as_int(GTK_V3270FTD(widget)->value[VALUE_DFT]);
798   -}
799   -
800   -LIB3270_EXPORT gint v3270_ft_dialog_get_record_length(GtkWidget *widget)
801   -{
802   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),0);
803   - if(GTK_V3270FTD(widget)->value[VALUE_LRECL])
804   - return gtk_spin_button_get_value_as_int(GTK_V3270FTD(widget)->value[VALUE_LRECL]);
805   - return 0;
806   -}
807   -
808   -LIB3270_EXPORT gint v3270_ft_dialog_get_block_size(GtkWidget *widget)
809   -{
810   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),0);
811   -
812   - if(GTK_V3270FTD(widget)->value[VALUE_BLKSIZE])
813   - return gtk_spin_button_get_value_as_int(GTK_V3270FTD(widget)->value[VALUE_BLKSIZE]);
814   - return 0;
815   -}
816   -
817   -LIB3270_EXPORT gint v3270_ft_dialog_get_primary_space(GtkWidget *widget)
818   -{
819   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),0);
820   -
821   - if(GTK_V3270FTD(widget)->value[VALUE_PRIMSPACE])
822   - return gtk_spin_button_get_value_as_int(GTK_V3270FTD(widget)->value[VALUE_PRIMSPACE]);
823   - return 0;
824   -}
825   -
826   -LIB3270_EXPORT gint v3270_ft_dialog_get_secondary_space(GtkWidget *widget)
827   -{
828   - g_return_val_if_fail(GTK_IS_V3270FTD(widget),0);
829   - if(GTK_V3270FTD(widget)->value[VALUE_SECSPACE])
830   - return gtk_spin_button_get_value_as_int(GTK_V3270FTD(widget)->value[VALUE_SECSPACE]);
831   - return 0;
832   -}
833   -*/
src/pw3270/ft/ftprogress.c
... ... @@ -1,329 +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 ftprogress.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   - #include "v3270ft.h"
31   -
32   -/*--[ Widget definition ]----------------------------------------------------------------------------*/
33   -
34   - enum _filename
35   - {
36   - TEXT_FROM,
37   - TEXT_TO,
38   - TEXT_STATUS,
39   -
40   - TEXT_COUNT
41   - };
42   -
43   - enum _value
44   - {
45   - VALUE_TOTAL,
46   - VALUE_CURRENT,
47   - VALUE_SPEED,
48   - VALUE_ETA,
49   -
50   - VALUE_COUNT
51   - };
52   -
53   - struct _v3270FTProgress
54   - {
55   -#if GTK_CHECK_VERSION(3,0,0)
56   - GtkBin parent;
57   -#else
58   - GtkVBox parent;
59   -#endif // GTK_CHECK_VERSION
60   - GtkLabel * text[TEXT_COUNT];
61   - GtkLabel * value[VALUE_COUNT];
62   - GtkProgressBar * progress;
63   - };
64   -
65   - struct _v3270FTProgressClass
66   - {
67   -#if GTK_CHECK_VERSION(3,0,0)
68   - GtkBinClass parent_class;
69   -#else
70   - GtkVBoxClass parent_class;
71   -#endif // GTK_CHECK_VERSION
72   - };
73   -
74   -#if GTK_CHECK_VERSION(3,0,0)
75   - G_DEFINE_TYPE(v3270FTProgress, v3270FTProgress, GTK_TYPE_BIN);
76   -#else
77   - G_DEFINE_TYPE(v3270FTProgress, v3270FTProgress, GTK_TYPE_VBOX);
78   -#endif // GTK_CHECK_VERSION
79   -
80   -/*--[ Implement ]------------------------------------------------------------------------------------*/
81   -
82   -/*
83   -static void v3270FTProgress_class_init(v3270FTProgressClass *klass)
84   -{
85   -#if GTK_CHECK_VERSION(3,0,0)
86   -#else
87   -#endif // GTK_CHECK_VERSION
88   -}
89   -
90   -static void v3270FTProgress_init(v3270FTProgress *widget)
91   -{
92   - GtkWidget * frame;
93   -#if GTK_CHECK_VERSION(3,0,0)
94   - GtkGrid * grid;
95   - GtkWidget * box = gtk_box_new(GTK_ORIENTATION_VERTICAL,3);
96   -#else
97   - GtkTable * grid;
98   - GtkWidget * box = GTK_WIDGET(widget);
99   -#endif // GTK_CHECK_VERSION
100   - int f;
101   -
102   - gtk_container_set_border_width(GTK_CONTAINER(box),3);
103   -
104   - // Create From/to fields
105   - static const gchar * label[TEXT_COUNT] = { N_("From"), N_("To"), N_("Status") };
106   -
107   - frame = gtk_frame_new( _( "Informations" ) );
108   -
109   -#if GTK_CHECK_VERSION(3,0,0)
110   -
111   - grid = GTK_GRID(gtk_grid_new());
112   -
113   - gtk_grid_set_column_spacing(grid,5);
114   - gtk_grid_set_row_spacing(grid,5);
115   - gtk_widget_set_hexpand(GTK_WIDGET(grid),TRUE);
116   -
117   -#else
118   -
119   - grid = GTK_TABLE(gtk_table_new(2,2,FALSE));
120   -
121   - gtk_table_set_row_spacings(grid,5);
122   - gtk_table_set_col_spacings(grid,5);
123   -
124   -#endif // GTK_CHECK_VERSION
125   -
126   - gtk_container_set_border_width(GTK_CONTAINER(grid),3);
127   -
128   - for(f=0;f<TEXT_COUNT;f++)
129   - {
130   - GtkWidget * l = gtk_label_new("");
131   - gchar * ptr = g_strdup_printf("<b>%s:</b>",gettext(label[f]));
132   -
133   - gtk_label_set_markup(GTK_LABEL(l),ptr);
134   - gtk_misc_set_alignment(GTK_MISC(l),0,0);
135   - g_free(ptr);
136   -
137   -
138   - widget->text[f] = GTK_LABEL(gtk_label_new("-"));
139   - gtk_label_set_ellipsize(widget->text[f],PANGO_ELLIPSIZE_START);
140   - gtk_label_set_width_chars(widget->text[f],50);
141   - gtk_misc_set_alignment(GTK_MISC(widget->text[f]),0,0);
142   -
143   -#if GTK_CHECK_VERSION(3,0,0)
144   -
145   - gtk_widget_set_hexpand(GTK_WIDGET(widget->text[f]),TRUE);
146   - gtk_grid_attach(grid,l,0,f,1,1);
147   - gtk_grid_attach(grid,GTK_WIDGET(widget->text[f]),1,f,1,1);
148   -
149   -#else
150   -
151   - gtk_table_attach(grid,l,0,1,f,f+1,GTK_FILL,GTK_FILL,0,0);
152   - gtk_table_attach(grid,GTK_WIDGET(widget->text[f]),1,2,f,f+1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
153   -
154   -#endif // GTK_CHECK_VERSION
155   -
156   -
157   - }
158   - gtk_container_add(GTK_CONTAINER(frame),GTK_WIDGET(grid));
159   - gtk_container_add(GTK_CONTAINER(box),GTK_WIDGET(frame));
160   -
161   - // Progress info
162   - static const gchar *progressLabel[VALUE_COUNT] = { N_( "Total" ), N_( "Current" ), N_( "Speed" ), N_( "ETA" ) };
163   -
164   - frame = gtk_frame_new( _( "Progress" ) );
165   -
166   -#if GTK_CHECK_VERSION(3,0,0)
167   -
168   - grid = GTK_GRID(gtk_grid_new());
169   -
170   - gtk_grid_set_column_spacing(grid,5);
171   - gtk_grid_set_row_spacing(grid,5);
172   - gtk_widget_set_hexpand(GTK_WIDGET(grid),TRUE);
173   - gtk_grid_set_column_homogeneous(grid,TRUE);
174   -
175   -#else
176   -
177   - grid = GTK_TABLE(gtk_table_new(3,4,FALSE));
178   -
179   - gtk_table_set_row_spacings(grid,5);
180   - gtk_table_set_col_spacings(grid,5);
181   -
182   -#endif // GTK_CHECK_VERSION
183   -
184   - gtk_container_set_border_width(GTK_CONTAINER(grid),3);
185   -
186   - for(f=0;f<VALUE_COUNT;f++)
187   - {
188   - GtkWidget * l = gtk_label_new(_("N/A"));
189   - int r = f/2;
190   - int c = (f&1)*2;
191   - gchar * ptr = g_strdup_printf("<b>%s:</b>",gettext(progressLabel[f]));
192   -
193   - gtk_label_set_markup(GTK_LABEL(l),ptr);
194   - gtk_misc_set_alignment(GTK_MISC(l),0,0);
195   - g_free(ptr);
196   -
197   - widget->value[f] = GTK_LABEL(gtk_label_new(_("N/A")));
198   - gtk_misc_set_alignment(GTK_MISC(widget->value[f]),1,0);
199   -
200   -#if GTK_CHECK_VERSION(3,0,0)
201   -
202   - gtk_widget_set_hexpand(GTK_WIDGET(widget->value[f]),TRUE);
203   - gtk_grid_attach(grid,l,c,r,1,1);
204   - gtk_grid_attach(grid,GTK_WIDGET(widget->value[f]),c+1,r,1,1);
205   -
206   -#else
207   -
208   - gtk_table_attach(grid,l,c,c+1,r,r+1,GTK_FILL,GTK_FILL,0,0);
209   - gtk_table_attach(grid,GTK_WIDGET(widget->value[f]),c+1,c+2,r,r+1,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
210   -
211   -#endif // GTK_CHECK_VERSION
212   -
213   - }
214   -
215   - widget->progress = GTK_PROGRESS_BAR(gtk_progress_bar_new());
216   -
217   -#if GTK_CHECK_VERSION(3,0,0)
218   - gtk_widget_set_hexpand(GTK_WIDGET(widget->progress),TRUE);
219   - gtk_grid_attach(grid,GTK_WIDGET(widget->progress),0,2,4,1);
220   -#else
221   - gtk_table_attach(grid,GTK_WIDGET(widget->progress),0,4,2,3,GTK_EXPAND|GTK_FILL,GTK_FILL,0,0);
222   -#endif // GTK_CHECK_VERSION
223   -
224   - gtk_container_add(GTK_CONTAINER(frame),GTK_WIDGET(grid));
225   - gtk_container_add(GTK_CONTAINER(box),GTK_WIDGET(frame));
226   -
227   - // Add box on parent widget
228   -#if GTK_CHECK_VERSION(3,0,0)
229   - gtk_container_add(GTK_CONTAINER(widget),box);
230   -#endif // GTK_CHECK_VERSION
231   -
232   -}
233   -
234   -GtkWidget * v3270_ft_progress_new(void)
235   -{
236   - return g_object_new(GTK_TYPE_V3270FTProgress, NULL);
237   -}
238   -
239   -void v3270_ft_progress_update(GtkWidget *widget, unsigned long current, unsigned long total, double kbytes_sec)
240   -{
241   - g_return_if_fail(GTK_IS_V3270FTProgress(widget));
242   -
243   - v3270FTProgress *obj = GTK_V3270FTProcess(widget);
244   -
245   - if(current)
246   - {
247   - gchar *str = g_strdup_printf("%ld",current);
248   - gtk_label_set_text(obj->value[VALUE_CURRENT],str);
249   - g_free(str);
250   - }
251   -
252   - if(total)
253   - {
254   - gchar *str = g_strdup_printf("%ld",total);
255   - gtk_label_set_text(obj->value[VALUE_TOTAL],str);
256   - g_free(str);
257   - }
258   -
259   - if(kbytes_sec)
260   - {
261   - gchar *str = g_strdup_printf("%ld KB/s",(unsigned long) kbytes_sec);
262   - gtk_label_set_text(obj->value[VALUE_SPEED],str);
263   - g_free(str);
264   - }
265   -
266   - if(total && current)
267   - {
268   - double remaining = ((double) (total - current))/1024.0;
269   -
270   - if(remaining > 0 && kbytes_sec > 0)
271   - {
272   - char buffer[40];
273   - double seconds = ((double) remaining) / kbytes_sec;
274   - time_t eta = time(0) + ((time_t) seconds);
275   - strftime(buffer, 39, "%H:%M:%S", localtime(&eta));
276   - gtk_label_set_text(obj->value[VALUE_ETA],buffer);
277   - }
278   - else
279   - {
280   - gtk_label_set_text(obj->value[VALUE_ETA],"");
281   - }
282   -
283   - gtk_progress_bar_set_fraction(obj->progress,((gdouble) current) / ((gdouble) total));
284   - }
285   - else
286   - {
287   - gtk_progress_bar_pulse(obj->progress);
288   - gtk_label_set_text(obj->value[VALUE_ETA],"");
289   - }
290   -
291   -}
292   -
293   -void v3270_ft_progress_complete(GtkWidget *widget,unsigned long length, double kbytes_sec)
294   -{
295   - g_return_if_fail(GTK_IS_V3270FTProgress(widget));
296   -
297   - v3270FTProgress *obj = GTK_V3270FTProcess(widget);
298   -
299   - if(length)
300   - {
301   - gchar *str = g_strdup_printf("%ld",length);
302   - gtk_label_set_text(obj->value[VALUE_CURRENT],str);
303   - g_free(str);
304   - }
305   -
306   - if(kbytes_sec)
307   - {
308   - gchar *str = g_strdup_printf("%ld KB/s",(unsigned long) kbytes_sec);
309   - gtk_label_set_text(obj->value[VALUE_SPEED],str);
310   - g_free(str);
311   - }
312   -
313   - gtk_label_set_text(obj->value[VALUE_ETA],"");
314   -
315   -}
316   -
317   -void v3270_ft_progress_set_message(GtkWidget *widget, const gchar *msg)
318   -{
319   - g_return_if_fail(GTK_IS_V3270FTProgress(widget));
320   - gtk_label_set_text(GTK_V3270FTProcess(widget)->text[TEXT_STATUS],msg);
321   -}
322   -
323   -void v3270_ft_progress_set_filenames(GtkWidget *widget, const gchar *from, const gchar *to)
324   -{
325   - g_return_if_fail(GTK_IS_V3270FTProgress(widget));
326   - gtk_label_set_text(GTK_V3270FTProcess(widget)->text[TEXT_FROM],from);
327   - gtk_label_set_text(GTK_V3270FTProcess(widget)->text[TEXT_TO],to);
328   -}
329   -*/
src/pw3270/ft/private.h
... ... @@ -1,92 +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 private.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   -#ifndef PRIVATE_H_INCLUDED
31   -
32   - #define PRIVATE_H_INCLUDED
33   -
34   - #include "v3270ft.h"
35   -
36   -/*--[ Widget definition ]----------------------------------------------------------------------------*/
37   -
38   - enum _filename
39   - {
40   - FILENAME_LOCAL,
41   - FILENAME_HOST,
42   -
43   - FILENAME_COUNT
44   - };
45   -
46   - enum _value
47   - {
48   - VALUE_LRECL,
49   - VALUE_BLKSIZE,
50   - VALUE_PRIMSPACE,
51   - VALUE_SECSPACE,
52   - VALUE_DFT,
53   -
54   - VALUE_COUNT
55   - };
56   -
57   - enum _button
58   - {
59   - BUTTON_ASCII,
60   - BUTTON_CRLF,
61   - BUTTON_APPEND,
62   - BUTTON_REMAP,
63   -
64   - BUTTON_COUNT
65   - };
66   -
67   - struct _v3270FTD
68   - {
69   - GtkDialog parent;
70   - GtkWidget * filename[FILENAME_COUNT]; /**< Filenames for the transfer */
71   - GtkWidget * units; /**< Units frame box */
72   - GtkWidget * ready; /**< Send/Save button */
73   - GtkToggleButton * button[BUTTON_COUNT]; /**< Buttons */
74   - GtkToggleButton * recfm[4]; /**< Record format buttons */
75   - GtkToggleButton * btnUnits[4]; /**< Unit buttons */
76   - GtkSpinButton * value[VALUE_COUNT];
77   - gboolean local; /**< TRUE if local filename is ok */
78   - gboolean remote; /**< TRUE if remote filename is ok */
79   - LIB3270_FT_OPTION options;
80   - };
81   -
82   - struct _v3270FTDClass
83   - {
84   - GtkDialogClass parent_class;
85   -
86   - int dummy;
87   - };
88   -
89   -// G_GNUC_INTERNAL void browse_file(GtkButton *button,v3270FTD *parent);
90   -
91   -
92   -#endif // PRIVATE_H_INCLUDED
src/pw3270/ft/testprogram.c
... ... @@ -1,64 +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 testprogram.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   - #include <gtk/gtk.h>
31   - #include "v3270ft.h"
32   -
33   -/*--[ Implement ]------------------------------------------------------------------------------------*/
34   -
35   -int main (int argc, char *argv[])
36   -{
37   - gtk_init (&argc, &argv);
38   -
39   - {
40   - GtkWidget *win = v3270_ft_dialog_new(NULL,LIB3270_FT_OPTION_RECEIVE);
41   - v3270_ft_dialog_set_options(win,LIB3270_FT_OPTION_REMAP);
42   - gtk_dialog_run(GTK_DIALOG(win));
43   - }
44   -
45   - /*
46   - {
47   - GtkWidget *win = v3270_ft_dialog_new(NULL,LIB3270_FT_OPTION_SEND|LIB3270_FT_RECORD_FORMAT_VARIABLE);
48   - v3270_ft_dialog_set_tso(win,FALSE);
49   - gtk_dialog_run(GTK_DIALOG(win));
50   - }
51   - */
52   -
53   - /*
54   - {
55   - GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
56   - gtk_container_add(GTK_CONTAINER(win),v3270_ft_progress_new());
57   - gtk_widget_show_all(win);
58   - gtk_main ();
59   - }
60   - */
61   -
62   - return 0;
63   -
64   -}
src/pw3270/ft/v3270ft.h
... ... @@ -1,108 +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 v3270ft.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 V3270FT_H_INCLUDED
33   -
34   - #define ENABLE_NLS
35   -
36   - #ifndef GETTEXT_PACKAGE
37   - #define GETTEXT_PACKAGE PACKAGE_NAME
38   - #endif
39   -
40   - #include <libintl.h>
41   - #include <glib/gi18n.h>
42   - #include <gtk/gtk.h>
43   - #include <lib3270.h>
44   - #include <lib3270/filetransfer.h>
45   -
46   - #define V3270FT_H_INCLUDED 1
47   -
48   - G_BEGIN_DECLS
49   -
50   -/*--[ Select file dialog ]---------------------------------------------------------------------------*/
51   - #define GTK_TYPE_V3270FTD (v3270FTD_get_type ())
52   - #define GTK_V3270FTD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270FTD, v3270FTD))
53   - #define GTK_V3270FTD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270FTD, v3270FTDClass))
54   - #define GTK_IS_V3270FTD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_V3270FTD))
55   - #define GTK_IS_V3270FTD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270FTD))
56   - #define GTK_V3270FTD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270FTD, v3270FTDClass))
57   -
58   - typedef struct _v3270FTD v3270FTD;
59   - typedef struct _v3270FTDClass v3270FTDClass;
60   -
61   -/*--[ Progress widget ]------------------------------------------------------------------------------*/
62   -
63   - #define GTK_TYPE_V3270FTProgress (v3270FTProgress_get_type ())
64   - #define GTK_V3270FTProcess(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_V3270FTProgress, v3270FTProgress))
65   - #define GTK_V3270FTProgress_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_V3270FTProgress, v3270FTProgressClass))
66   - #define GTK_IS_V3270FTProgress(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_V3270FTProgress))
67   - #define GTK_IS_V3270FTProgress_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_V3270FTProgress))
68   - #define GTK_V3270FTProgress_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_V3270FTProgress, v3270FTProgressClass))
69   -
70   - typedef struct _v3270FTProgress v3270FTProgress;
71   - typedef struct _v3270FTProgressClass v3270FTProgressClass;
72   -
73   -/*--[ Prototipes ]-----------------------------------------------------------------------------------*/
74   - LIB3270_EXPORT GtkWidget * v3270_ft_dialog_new(GtkWidget *parent, LIB3270_FT_OPTION options);
75   - LIB3270_EXPORT void v3270_ft_dialog_set_host_filename(GtkWidget *widget, const gchar *name);
76   - LIB3270_EXPORT void v3270_ft_dialog_set_local_filename(GtkWidget *widget, const gchar *name);
77   - LIB3270_EXPORT const gchar * v3270_ft_dialog_get_host_filename(GtkWidget *widget);
78   - LIB3270_EXPORT const gchar * v3270_ft_dialog_get_local_filename(GtkWidget *widget);
79   - LIB3270_EXPORT void v3270_ft_dialog_set_options(GtkWidget *widget,LIB3270_FT_OPTION options);
80   - LIB3270_EXPORT LIB3270_FT_OPTION v3270_ft_dialog_get_options(GtkWidget *widget);
81   - LIB3270_EXPORT void v3270_ft_dialog_set_tso(GtkWidget *widget,gboolean flag);
82   - LIB3270_EXPORT void v3270_ft_dialog_set_dft_buffer_size(GtkWidget *widget, gint value);
83   - LIB3270_EXPORT void v3270_ft_dialog_set_record_length(GtkWidget *widget, gint value);
84   - LIB3270_EXPORT void v3270_ft_dialog_set_block_size(GtkWidget *widget, gint value);
85   - LIB3270_EXPORT void v3270_ft_dialog_set_primary_space(GtkWidget *widget, gint value);
86   - LIB3270_EXPORT void v3270_ft_dialog_set_secondary_space(GtkWidget *widget, gint value);
87   -
88   - LIB3270_EXPORT gint v3270_ft_dialog_get_dft_buffer_size(GtkWidget *widget);
89   - LIB3270_EXPORT gint v3270_ft_dialog_get_record_length(GtkWidget *widget);
90   - LIB3270_EXPORT gint v3270_ft_dialog_get_block_size(GtkWidget *widget);
91   - LIB3270_EXPORT gint v3270_ft_dialog_get_primary_space(GtkWidget *widget);
92   - LIB3270_EXPORT gint v3270_ft_dialog_get_secondary_space(GtkWidget *widget);
93   -
94   - /*
95   - LIB3270_EXPORT GtkWidget * v3270_ft_progress_new(void);
96   - LIB3270_EXPORT void v3270_ft_progress_update(GtkWidget *widget, unsigned long current, unsigned long total, double kbytes_sec);
97   - LIB3270_EXPORT void v3270_ft_progress_set_message(GtkWidget *widget, const gchar *msg);
98   - LIB3270_EXPORT void v3270_ft_progress_set_filenames(GtkWidget *widget, const gchar *from, const gchar *to);
99   - LIB3270_EXPORT void v3270_ft_progress_complete(GtkWidget *widget,unsigned long length,double kbytes_sec);
100   - */
101   -
102   - // File transfer
103   - // LIB3270_EXPORT gint pw3270_transfer_file(GtkWidget *widget, LIB3270_FT_OPTION options, const gchar *local, const gchar *remote, int lrecl, int blksize, int primspace, int secspace, int dft);
104   -
105   -
106   - G_END_DECLS
107   -
108   -#endif // V3270_H_INCLUDED