diff --git a/src/pw3270/Makefile.in b/src/pw3270/Makefile.in index dd4e482..b10162e 100644 --- a/src/pw3270/Makefile.in +++ b/src/pw3270/Makefile.in @@ -83,33 +83,44 @@ LIBS=@LIBS@ @GTK_LIBS@ @GTKMAC_LIBS@ @SOCKET_LIBS@ include ../include/rules.mak -%.png: pixmaps/%.svg +%.png: \ + pixmaps/%.svg + ifneq ($(CONVERT),no) @echo " GEN `basename $@`" @$(MKDIR) `dirname $@` @$(CONVERT) $< --format=png > $@ endif -%@OBJEXT@: %.rc +%@OBJEXT@: \ + %.rc + @echo " RC `basename $@`" @mkdir -p `dirname $@` @$(WINDRES) --include-dir=. -i $< -o $@ -$(OBJDBG)/%@OBJEXT@: %.rc +$(OBJDBG)/%@OBJEXT@: \ + %.rc + @echo " RC `basename $@`" @mkdir -p `dirname $@` @$(WINDRES) --include-dir=. -i $< -o $@ -$(OBJRLS)/%@OBJEXT@: %.rc +$(OBJRLS)/%@OBJEXT@: \ + %.rc + @echo " RC `basename $@`" @mkdir -p `dirname $@` @$(WINDRES) --include-dir=. -i $< -o $@ #---[ Release targets ]-------------------------------------------------------- -Release: $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT) +Release: \ + $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT) + +install: \ + Release $(PACKAGE_NAME).desktop $(PACKAGE_NAME)-logo.png -install: Release $(PACKAGE_NAME).desktop $(PACKAGE_NAME)-logo.png $(MKDIR) $(DESTDIR)$(bindir) $(INSTALL_PROGRAM) $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT) $(DESTDIR)$(bindir) @@ -128,18 +139,24 @@ install: Release $(PACKAGE_NAME).desktop $(PACKAGE_NAME)-logo.png --add-category TerminalEmulator \ $(PACKAGE_NAME).desktop -$(BINRLS)/$(PACKAGE_TARNAME)$(EXEEXT): $(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@ \ - $(foreach SRC, $(basename $(APP_SOURCES)), $(OBJRLS)/$(SRC)$(OBJEXT)) +$(BINRLS)/$(PACKAGE_TARNAME)$(EXEEXT): \ + $(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@ \ + $(foreach SRC, $(basename $(APP_SOURCES)), $(OBJRLS)/$(SRC)$(OBJEXT)) + @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` @$(LD) @LDARCH@ @LDAPPFLAGS@ -o $@ $(foreach SRC, $(basename $(APP_SOURCES)), $(OBJRLS)/$(SRC)$(OBJEXT)) $(LIBS) $(LIB3270_LIBS) -l$(PACKAGE_TARNAME) @$(STRIP) $@ -$(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@: $(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION) +$(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@: \ + $(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION) + @rm -f $@ @cd $(LIBRLS) && $(LN_S) @DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION) @DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@ -$(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION): $(foreach SRC, $(basename $(LIB_SOURCES)), $(OBJRLS)/$(SRC)$(OBJEXT)) +$(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION): \ + $(foreach SRC, $(basename $(LIB_SOURCES)), $(OBJRLS)/$(SRC)$(OBJEXT)) + @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` @$(LD) $(DLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @LDLIBFLAGS@ @RLS_LDFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) @@ -149,20 +166,34 @@ $(LIBRLS)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION): $(foreach SR Debug: $(BINDBG)/$(PACKAGE_TARNAME)$(EXEEXT) -$(BINDBG)/$(PACKAGE_TARNAME)$(EXEEXT): $(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@ \ - $(foreach SRC, $(basename $(APP_SOURCES)), $(OBJDBG)/$(SRC)$(OBJEXT)) +$(BINDBG)/$(PACKAGE_TARNAME)$(EXEEXT): \ + $(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@ \ + $(foreach SRC, $(basename $(APP_SOURCES)), $(OBJDBG)/$(SRC)$(OBJEXT)) + @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` @$(LD) @LDARCH@ @DBGRPATH@ -o $@ $(foreach SRC, $(basename $(APP_SOURCES)), $(OBJDBG)/$(SRC)$(OBJEXT)) $(LIBS) $(LIB3270_LIBS) -l$(PACKAGE_TARNAME) -$(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@: $(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION) +.bin/Debug/v3270ft.a: \ + v3270ft/* + + $(MAKE) BINDIR=../.bin -C v3270ft Debug + + +$(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@: \ + $(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION) + @rm -f $@ @cd $(LIBDBG) && $(LN_S) @DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION) @DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@ -$(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION): $(foreach SRC, $(basename $(LIB_SOURCES)), $(OBJDBG)/$(SRC)$(OBJEXT)) +$(LIBDBG)/@DLLPREFIX@$(PACKAGE_TARNAME)@DLLEXT@.$(PACKAGE_VERSION): \ + $(foreach SRC, $(basename $(LIB_SOURCES)), $(OBJDBG)/$(SRC)$(OBJEXT)) \ + .bin/Debug/v3270ft.a + @echo " CCLD `basename $@`" - @$(MKDIR) `dirname $@` - @$(LD) $(DLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @DBGRPATH@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) + @$(MKDIR) `dirname $@` AAA + $(LD) $(DLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @DBGRPATH@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) + run: $(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT) @cd "$(ROOTDIR)" ; .bin/Debug/$(PACKAGE_TARNAME)$(EXEEXT) @@ -209,6 +240,7 @@ distclean: clean @rm -f $(PACKAGE_NAME)-logo.png clean: clean-common + @$(MAKE) -C v3270ft clean @rm -f v3270/marshal.c @rm -f v3270/marshal.h @rm -fr uiparser/.bin diff --git a/src/pw3270/actions.c b/src/pw3270/actions.c index 476bd3f..e9ce87f 100644 --- a/src/pw3270/actions.c +++ b/src/pw3270/actions.c @@ -220,16 +220,35 @@ static void copy_as_html_action(GtkAction *action, GtkWidget *widget) G_GNUC_INTERNAL void transfer_action(GtkAction *action, GtkWidget *widget) { + GtkWidget * dialog = v3270ft_new(); -} + gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(gtk_widget_get_toplevel(widget))); -G_GNUC_INTERNAL void download_action(GtkAction *action, GtkWidget *widget) -{ + do { -} + gtk_widget_show_all(dialog); -G_GNUC_INTERNAL void upload_action(GtkAction *action, GtkWidget *widget) -{ + switch(gtk_dialog_run(GTK_DIALOG(dialog))) { + case GTK_RESPONSE_APPLY: + case GTK_RESPONSE_OK: + case GTK_RESPONSE_YES: + gtk_widget_hide(dialog); + v3270ft_transfer(dialog,v3270_get_session(widget)); + break; + + case GTK_RESPONSE_CANCEL: + case GTK_RESPONSE_NO: + case GTK_RESPONSE_DELETE_EVENT: + v3270ft_remove_all(dialog); + break; + + default: + g_warning("Unexpected response from v3270ft"); + } + + } while(v3270ft_get_length(dialog) > 0); + + gtk_widget_destroy(dialog); } @@ -273,8 +292,8 @@ static void connect_standard_action(GtkAction *action, GtkWidget *widget, const { "about", about_dialog_action }, { "kpsubtract", kp_subtract_action }, { "kpadd", kp_add_action }, - { "download", download_action }, - { "upload", upload_action }, + { "download", transfer_action }, + { "upload", transfer_action }, { "transfer", transfer_action }, #ifdef DEBUG { "copyashtml", copy_as_html_action }, diff --git a/src/pw3270/include/v3270ft.h b/src/pw3270/include/v3270ft.h index 51ff75b..8283905 100644 --- a/src/pw3270/include/v3270ft.h +++ b/src/pw3270/include/v3270ft.h @@ -75,6 +75,8 @@ void v3270ft_append_file(GtkWidget *widget, const gchar *filename, gboolean text); guint v3270ft_append_selection(GtkWidget *widget, GtkSelectionData *data); + gchar * v3270ft_select_file(v3270ft *dialog, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename); + gint v3270ft_transfer(GtkWidget *dialog, H3270 *session); G_END_DECLS diff --git a/src/pw3270/v3270ft/Makefile.in b/src/pw3270/v3270ft/Makefile.in index 399836e..a560238 100644 --- a/src/pw3270/v3270ft/Makefile.in +++ b/src/pw3270/v3270ft/Makefile.in @@ -28,8 +28,8 @@ MODULE_NAME=v3270ft #---[ Application sources ]-------------------------------------------------------------- -SOURCES=filelist.c load.c misc.c select.c tables.c transfer.c \ - v3270ftprogress.c get.c marshal.c save.c set.c testprogram.c v3270ft.c +SOURCES=filelist.c load.c misc.c select.c transfer.c v3270ftprogress.c get.c \ + marshal.c save.c set.c testprogram.c v3270ft.c #---[ Configuration values ]------------------------------------------------------------- @@ -79,7 +79,7 @@ GTK_LIBS=@GTK_LIBS@ GLIB_CFLAGS=@GLIB_CFLAGS@ GLIB_LIBS=@GLIB_LIBS@ -CFLAGS=@CFLAGS@ \ +CFLAGS=@CFLAGS@ @DLL_CFLAGS@ \ -I../include \ -DBUILD_DATE=`date +"0x%Y%m%d"` \ $(GTK_CFLAGS) diff --git a/src/pw3270/v3270ft/ftdialog.cbp b/src/pw3270/v3270ft/ftdialog.cbp index 3b7554e..fc5bcd6 100644 --- a/src/pw3270/v3270ft/ftdialog.cbp +++ b/src/pw3270/v3270ft/ftdialog.cbp @@ -112,9 +112,6 @@ - - diff --git a/src/pw3270/v3270ft/private.h b/src/pw3270/v3270ft/private.h index 95e2fca..fe6878e 100644 --- a/src/pw3270/v3270ft/private.h +++ b/src/pw3270/v3270ft/private.h @@ -183,7 +183,6 @@ G_GNUC_INTERNAL void v3270ft_set_active(v3270ft *dialog, GList * active); G_GNUC_INTERNAL GtkGrid * v3270ft_new_grid(void); G_GNUC_INTERNAL void v3270ft_clear(v3270ft *dialog); - G_GNUC_INTERNAL gchar * v3270ft_select_file(v3270ft *dialog, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename); G_GNUC_INTERNAL void v3270ftprogress_set_session(GtkWidget *widget, H3270 *session); G_GNUC_INTERNAL void v3270ftprogress_update(GtkWidget *widget, unsigned long current, unsigned long total, double kbytes_sec); diff --git a/src/pw3270/v3270ft/tables.c b/src/pw3270/v3270ft/tables.c deleted file mode 100644 index 8d887f9..0000000 --- a/src/pw3270/v3270ft/tables.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a - * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob - * o nome G3270. - * - * Copyright (C) <2008> - * - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela - * Free Software Foundation. - * - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para - * obter mais detalhes. - * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin - * St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Este programa está nomeado como new.c e possui - linhas de código. - * - * Contatos: - * - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) - * - * Referências: - * - * * http://www3.rocketsoftware.com/bluezone/help/v42/en/bz/DISPLAY/IND$FILE/IND$FILE_Technical_Reference.htm - * - */ - - #include "private.h" - -/*--[ Implement ]------------------------------------------------------------------------------------*/ - -const struct v3270ft_option ft_option[NUM_OPTIONS_WIDGETS] = { - - // Transfer options - { - LIB3270_FT_OPTION_ASCII, - "ascii", - N_("_Text file"), - N_( "Check this if the file consists of character data only.") - }, - { - LIB3270_FT_OPTION_CRLF, - "crlf", - N_("Follow the convention for _ASCII text files."), -#ifdef _WIN32 - 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.") -#else - N_( "Following the convention for ASCII text files, LF is used to terminate records in the PC file.") -#endif // _WIN32 - - }, - { - LIB3270_FT_OPTION_APPEND, - "append", - N_("A_ppend to file"), - N_( "Appends the source file to the destination file.") - }, - { - LIB3270_FT_OPTION_REMAP, - "remap", - N_("Re_map ASCII Characters."), - N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.") - }, - - // Record format - { - LIB3270_FT_RECORD_FORMAT_DEFAULT, - "recfm.default", - N_("Default"), - N_("Use host default record format.") - }, - { - LIB3270_FT_RECORD_FORMAT_FIXED, - "recfm.fixed", - N_("Fixed"), - N_("Creates a file with fixed-length records.") - }, - { - LIB3270_FT_RECORD_FORMAT_VARIABLE, - "recfm.variable", - N_("Variable"), - N_("Creates a file with variable-length records.") - }, - { - LIB3270_FT_RECORD_FORMAT_UNDEFINED, - "recfm.undefined", - N_("Undefined"), - N_("Creates a file with undefined-length records (TSO hosts only).") - }, - - // Space allocation units - { - LIB3270_FT_ALLOCATION_UNITS_DEFAULT, - "units.default", - N_("Default"), - NULL - }, - { - LIB3270_FT_ALLOCATION_UNITS_TRACKS, - "units.tracks", - N_("Tracks"), - NULL - }, - { - LIB3270_FT_ALLOCATION_UNITS_CYLINDERS, - "units.cylinders", - N_("Cylinders"), - NULL - }, - { - LIB3270_FT_ALLOCATION_UNITS_AVBLOCK, - "units.avblock", - N_("Avblock"), - NULL - }, - -}; - -const struct v3270ft_type ft_type[NUM_TYPES] = { - - { - LIB3270_FT_OPTION_SEND, - "send", - "binary", - N_("Send file") - }, - { - LIB3270_FT_OPTION_RECEIVE, - "receive", - "binary", - N_("Receive file") - }, - { - LIB3270_FT_OPTION_SEND|LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF|LIB3270_FT_OPTION_REMAP, - "send", - "text", - N_("Send text file") - }, - { - LIB3270_FT_OPTION_RECEIVE|LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF|LIB3270_FT_OPTION_REMAP, - "receive", - "text", - N_("Receive text file") - } -}; - -const struct v3270ft_value ft_value[LIB3270_FT_VALUE_COUNT] = { - { - "lrecl", - 0, 32760, - N_( "Record Length:" ), - N_( "Specifies the logical record length (n) for a data set consisting of fixed length records or the maximum logical record length for a data set consisting of variable length records." ) - }, - - - { - "primary", - 0,99999, - N_( "Primary space:" ), - N_( "Primary allocation for a file created on a TSO host.\nThe units are given by the space allocation units option." ) - }, - - { - "blksize", - 0,32760, - N_( "Block size:" ), - N_( "Specifies the block size (n) for a new data set. For data sets containing fixed " \ - "length records, the block size must be a multiple of the record length. " \ - "For data sets containing variable length records, the block size must be " \ - "greater than or equal to the record length plus four bytes. The block size " \ - "must not exceed the track length of the device on which the data set resides." ) - }, - - { - "secondary", - 0,99999, - N_( "Secondary space:" ), - N_( "Secondary allocation for a file created on a TSO host.\nThe units are given by the space allocation units option." ) - }, - - { - "dft", - 0,99999, - N_( "DFT B_uffer size:" ), - N_("Specifies the default buffer size for DFT IND$FILE file transfers.") - }, - -}; - diff --git a/src/pw3270/v3270ft/v3270ft.c b/src/pw3270/v3270ft/v3270ft.c index 564cd5e..580ff7e 100644 --- a/src/pw3270/v3270ft/v3270ft.c +++ b/src/pw3270/v3270ft/v3270ft.c @@ -45,6 +45,164 @@ /*--[ Globals ]--------------------------------------------------------------------------------------*/ +const struct v3270ft_option ft_option[NUM_OPTIONS_WIDGETS] = { + + // Transfer options + { + LIB3270_FT_OPTION_ASCII, + "ascii", + N_("_Text file"), + N_( "Check this if the file consists of character data only.") + }, + { + LIB3270_FT_OPTION_CRLF, + "crlf", + N_("Follow the convention for _ASCII text files."), +#ifdef _WIN32 + 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.") +#else + N_( "Following the convention for ASCII text files, LF is used to terminate records in the PC file.") +#endif // _WIN32 + + }, + { + LIB3270_FT_OPTION_APPEND, + "append", + N_("A_ppend to file"), + N_( "Appends the source file to the destination file.") + }, + { + LIB3270_FT_OPTION_REMAP, + "remap", + N_("Re_map ASCII Characters."), + N_("Remap the text to ensure maximum compatibility between the workstation's character set and encoding and the host's EBCDIC code page.") + }, + + // Record format + { + LIB3270_FT_RECORD_FORMAT_DEFAULT, + "recfm.default", + N_("Default"), + N_("Use host default record format.") + }, + { + LIB3270_FT_RECORD_FORMAT_FIXED, + "recfm.fixed", + N_("Fixed"), + N_("Creates a file with fixed-length records.") + }, + { + LIB3270_FT_RECORD_FORMAT_VARIABLE, + "recfm.variable", + N_("Variable"), + N_("Creates a file with variable-length records.") + }, + { + LIB3270_FT_RECORD_FORMAT_UNDEFINED, + "recfm.undefined", + N_("Undefined"), + N_("Creates a file with undefined-length records (TSO hosts only).") + }, + + // Space allocation units + { + LIB3270_FT_ALLOCATION_UNITS_DEFAULT, + "units.default", + N_("Default"), + NULL + }, + { + LIB3270_FT_ALLOCATION_UNITS_TRACKS, + "units.tracks", + N_("Tracks"), + NULL + }, + { + LIB3270_FT_ALLOCATION_UNITS_CYLINDERS, + "units.cylinders", + N_("Cylinders"), + NULL + }, + { + LIB3270_FT_ALLOCATION_UNITS_AVBLOCK, + "units.avblock", + N_("Avblock"), + NULL + }, + +}; + +const struct v3270ft_type ft_type[NUM_TYPES] = { + + { + LIB3270_FT_OPTION_SEND, + "send", + "binary", + N_("Send file") + }, + { + LIB3270_FT_OPTION_RECEIVE, + "receive", + "binary", + N_("Receive file") + }, + { + LIB3270_FT_OPTION_SEND|LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF|LIB3270_FT_OPTION_REMAP, + "send", + "text", + N_("Send text file") + }, + { + LIB3270_FT_OPTION_RECEIVE|LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_CRLF|LIB3270_FT_OPTION_REMAP, + "receive", + "text", + N_("Receive text file") + } +}; + +const struct v3270ft_value ft_value[LIB3270_FT_VALUE_COUNT] = { + { + "lrecl", + 0, 32760, + N_( "Record Length:" ), + N_( "Specifies the logical record length (n) for a data set consisting of fixed length records or the maximum logical record length for a data set consisting of variable length records." ) + }, + + + { + "primary", + 0,99999, + N_( "Primary space:" ), + N_( "Primary allocation for a file created on a TSO host.\nThe units are given by the space allocation units option." ) + }, + + { + "blksize", + 0,32760, + N_( "Block size:" ), + N_( "Specifies the block size (n) for a new data set. For data sets containing fixed " \ + "length records, the block size must be a multiple of the record length. " \ + "For data sets containing variable length records, the block size must be " \ + "greater than or equal to the record length plus four bytes. The block size " \ + "must not exceed the track length of the device on which the data set resides." ) + }, + + { + "secondary", + 0,99999, + N_( "Secondary space:" ), + N_( "Secondary allocation for a file created on a TSO host.\nThe units are given by the space allocation units option." ) + }, + + { + "dft", + 0,99999, + N_( "DFT B_uffer size:" ), + N_("Specifies the default buffer size for DFT IND$FILE file transfers.") + }, + +}; + /*--[ Implement ]------------------------------------------------------------------------------------*/ -- libgit2 0.21.2