Commit 95067daa397f37b4c02472e2bf0af98109d8f7c2

Authored by Perry Werneck
Committed by GitHub
2 parents 48297ea7 04a37247
Exists in master and in 1 other branch develop

Merge pull request #20 from PerryWerneck/develop

Fixes and enhancements
.gitignore
... ... @@ -53,8 +53,12 @@ glade/v3270.xml
53 53 *test.glade*
54 54 ValgrindOut.xml
55 55 *.crl
  56 +ABOUT-NLS
  57 +intl
  58 +po
56 59 *.orig
57 60 *.patch
58 61 *.sh
59 62 *.conf
60 63 *.pdf
  64 +marshal
... ...
Makefile.in
... ... @@ -24,36 +24,51 @@
24 24 # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
25 25 #
26 26  
  27 +#---[ Paths ]----------------------------------------------------------------------------
  28 +
  29 +prefix=@prefix@
  30 +exec_prefix=@exec_prefix@
  31 +bindir=@bindir@
  32 +srcdir=@srcdir@
  33 +sbindir=@sbindir@
  34 +libdir=@libdir@
  35 +includedir=@includedir@
  36 +datarootdir=@datarootdir@
  37 +localedir=@localedir@
  38 +docdir=@docdir@
  39 +sysconfdir=@sysconfdir@
  40 +
27 41 #---[ Library configuration ]------------------------------------------------------------
28 42  
29 43 SONAME=@SONAME@
30 44 LIBNAME=libv3270
31 45 PRODUCT_NAME=@PRODUCT_NAME@
32 46 INSTALL_PACKAGES=@INSTALL_PACKAGES@
  47 +GETTEXT_PACKAGE=@GETTEXT_PACKAGE@
33 48  
34 49 SOURCES= \
35   - $(wildcard src/terminal/*.c) \
36   - $(wildcard src/terminal/@OSNAME@/*.rc) \
37   - $(wildcard src/terminal/@OSNAME@/*.c) \
38   - $(wildcard src/terminal/properties/*.c) \
39   - $(wildcard src/terminal/drawing/*.c) \
40   - $(wildcard src/terminal/font/*.c) \
41   - $(wildcard src/terminal/keyboard/*.c) \
42   - $(wildcard src/terminal/actions/*.c) \
43   - $(wildcard src/filetransfer/*.c) \
44   - $(wildcard src/selection/*.c) \
45   - $(wildcard src/selection/@OSNAME@/*.c) \
46   - $(wildcard src/trace/*.c) \
47   - $(wildcard src/dialogs/*.c) \
48   - $(wildcard src/dialogs/@OSNAME@/*.c) \
49   - $(wildcard src/dialogs/print/*.c) \
50   - $(wildcard src/dialogs/save/*.c) \
51   - $(wildcard src/dialogs/font/*.c) \
52   - $(wildcard src/dialogs/settings/*.c) \
53   - $(wildcard src/tools/*.c)
  50 + $(wildcard $(srcdir)/src/terminal/*.c) \
  51 + $(wildcard $(srcdir)/src/terminal/@OSNAME@/*.rc) \
  52 + $(wildcard $(srcdir)/src/terminal/@OSNAME@/*.c) \
  53 + $(wildcard $(srcdir)/src/terminal/properties/*.c) \
  54 + $(wildcard $(srcdir)/src/terminal/drawing/*.c) \
  55 + $(wildcard $(srcdir)/src/terminal/font/*.c) \
  56 + $(wildcard $(srcdir)/src/terminal/keyboard/*.c) \
  57 + $(wildcard $(srcdir)/src/terminal/actions/*.c) \
  58 + $(wildcard $(srcdir)/src/filetransfer/*.c) \
  59 + $(wildcard $(srcdir)/src/selection/*.c) \
  60 + $(wildcard $(srcdir)/src/selection/@OSNAME@/*.c) \
  61 + $(wildcard $(srcdir)/src/trace/*.c) \
  62 + $(wildcard $(srcdir)/src/dialogs/*.c) \
  63 + $(wildcard $(srcdir)/src/dialogs/@OSNAME@/*.c) \
  64 + $(wildcard $(srcdir)/src/dialogs/print/*.c) \
  65 + $(wildcard $(srcdir)/src/dialogs/save/*.c) \
  66 + $(wildcard $(srcdir)/src/dialogs/font/*.c) \
  67 + $(wildcard $(srcdir)/src/dialogs/settings/*.c) \
  68 + $(wildcard $(srcdir)/src/tools/*.c)
54 69  
55 70 TEST_SOURCES= \
56   - $(wildcard src/testprogram/*.c)
  71 + $(wildcard $(srcdir)/src/testprogram/*.c)
57 72  
58 73 #---[ Tools ]----------------------------------------------------------------------------
59 74  
... ... @@ -75,42 +90,28 @@ ZIP=@ZIP@
75 90 DLLTOOL=@DLLTOOL@
76 91 STRIP=@STRIP@
77 92  
78   -#---[ Paths ]----------------------------------------------------------------------------
79   -
80   -prefix=@prefix@
81   -exec_prefix=@exec_prefix@
82   -bindir=@bindir@
83   -sbindir=@sbindir@
84   -libdir=@libdir@
85   -includedir=@includedir@
86   -datarootdir=@datarootdir@
87   -localedir=@localedir@
88   -docdir=@docdir@
89   -sysconfdir=@sysconfdir@
  93 +#---[ Build Paths ]----------------------------------------------------------------------
90 94  
91   -BASEDIR=@BASEDIR@
  95 +BUILDDIR=@BUILDDIR@
92 96  
93   -POTDIR=$(BASEDIR)/.pot
  97 +POTDIR=$(BUILDDIR)/.pot
94 98  
95   -OBJDIR=$(BASEDIR)/.obj/$(LIBNAME)
  99 +OBJDIR=$(BUILDDIR)/.obj/$(LIBNAME)
96 100 OBJDBG=$(OBJDIR)/Debug
97 101 OBJRLS=$(OBJDIR)/Release
98 102  
99   -BINDIR=$(BASEDIR)/.bin
  103 +BINDIR=$(BUILDDIR)/.bin
100 104 BINDBG=$(BINDIR)/Debug
101 105 BINRLS=$(BINDIR)/Release
102 106  
103 107 #---[ Rules ]----------------------------------------------------------------------------
104 108  
105 109 DEPENDS= \
106   - Makefile \
107   - src/include/*.h \
108   - src/include/v3270/*.h \
109   - src/filetransfer/marshal.h \
110   - src/filetransfer/private.h \
111   - src/terminal/marshal.h \
112   - src/trace/marshal.h \
113   - src/dialogs/settings/marshal.h
  110 + src/include/config.h \
  111 + src/include/marshal/filetransfer.h \
  112 + src/include/marshal/terminal.h \
  113 + src/include/marshal/trace.h \
  114 + src/include/marshal/dialogs.h
114 115  
115 116 DATE_FMT = +%Y%m%d
116 117 ifdef SOURCE_DATE_EPOCH
... ... @@ -122,6 +123,7 @@ CFLAGS= \
122 123 @CFLAGS@ \
123 124 -g \
124 125 -Isrc/include \
  126 + -I$(srcdir)/src/include \
125 127 -DBUILD_DATE=$(BUILD_DATE) \
126 128 -DLOCALEDIR=$(localedir) \
127 129 @LIB3270_CFLAGS@ \
... ... @@ -203,7 +205,7 @@ $(OBJRLS)/%.o: \
203 205  
204 206 #---[ Misc Rules ]-----------------------------------------------------------------------
205 207  
206   -$(POTDIR)/$(LIBNAME)/%.pot: \
  208 +$(POTDIR)/%.pot: \
207 209 %.c
208 210  
209 211 @echo $(notdir $@) ...
... ... @@ -217,7 +219,7 @@ $(POTDIR)/$(LIBNAME)/%.pot: \
217 219 $<
218 220 @touch $@
219 221  
220   -$(POTDIR)/$(LIBNAME)/%.pot: \
  222 +$(POTDIR)/%.pot: \
221 223 %.rc
222 224  
223 225 @echo $< ...
... ... @@ -232,16 +234,16 @@ install-%: \
232 234  
233 235 #---[ Marshal Targets ]------------------------------------------------------------------
234 236  
235   -src/terminal/marshal.h: \
236   - src/terminal/marshal
  237 +src/include/marshal/terminal.h: \
  238 + $(srcdir)/src/terminal/marshal
237 239  
238 240 @echo $@ ...
239 241 @$(MKDIR) $(@D)
240 242  
241 243 @$(GENMARSHAL) --prefix=v3270 --header $< > $@
242 244  
243   -src/dialogs/settings/marshal.h: \
244   - src/dialogs/settings/marshal
  245 +src/include/marshal/dialogs.h: \
  246 + $(srcdir)/src/dialogs/settings/marshal
245 247  
246 248 @echo $@ ...
247 249 @$(MKDIR) $(@D)
... ... @@ -249,7 +251,7 @@ src/dialogs/settings/marshal.h: \
249 251 @$(GENMARSHAL) --prefix=v3270 --header $< > $@
250 252  
251 253 $(OBJDIR)/marshal/v3270.c: \
252   - src/terminal/marshal
  254 + $(srcdir)/src/terminal/marshal
253 255  
254 256 @echo $@ ...
255 257 @$(MKDIR) $(@D)
... ... @@ -257,8 +259,8 @@ $(OBJDIR)/marshal/v3270.c: \
257 259 @$(GENMARSHAL) --prefix=v3270 --body $< > $@
258 260  
259 261  
260   -src/filetransfer/marshal.h: \
261   - src/filetransfer/marshal
  262 +src/include/marshal/filetransfer.h: \
  263 + $(srcdir)/src/filetransfer/marshal
262 264  
263 265 @echo $@ ...
264 266 @$(MKDIR) $(@D)
... ... @@ -266,15 +268,15 @@ src/filetransfer/marshal.h: \
266 268 @$(GENMARSHAL) --prefix=v3270ft --header $< > $@
267 269  
268 270 $(OBJDIR)/marshal/v3270ft.c: \
269   - src/filetransfer/marshal
  271 + $(srcdir)/src/filetransfer/marshal
270 272  
271 273 @echo $@ ...
272 274 @$(MKDIR) $(@D)
273 275  
274 276 @$(GENMARSHAL) --prefix=v3270ft --body $< > $@
275 277  
276   -src/trace/marshal.h: \
277   - src/trace/marshal
  278 +src/include/marshal/trace.h: \
  279 + $(srcdir)/src/trace/marshal
278 280  
279 281 @echo $@ ...
280 282 @$(MKDIR) $(@D)
... ... @@ -282,14 +284,13 @@ src/trace/marshal.h: \
282 284 @$(GENMARSHAL) --prefix=v3270trace --header $< > $@
283 285  
284 286 $(OBJDIR)/marshal/trace.c: \
285   - src/trace/marshal
  287 + $(srcdir)/src/trace/marshal
286 288  
287 289 @echo $@ ...
288 290 @$(MKDIR) $(@D)
289 291  
290 292 @$(GENMARSHAL) --prefix=v3270trace --body $< > $@
291 293  
292   -
293 294 $(OBJDIR)/marshal/%.o: \
294 295 $(OBJDIR)/marshal/%.c \
295 296 $(DEPENDS)
... ... @@ -309,7 +310,7 @@ $(OBJDIR)/marshal/%.o: \
309 310 all: \
310 311 $(BINRLS)/$(SONAME) \
311 312 $(BINRLS)/static/$(LIBNAME).a \
312   - locale/$(LIBNAME).pot
  313 + locale/$(GETTEXT_PACKAGE).pot
313 314  
314 315 Release: \
315 316 $(BINRLS)/$(SONAME) \
... ... @@ -347,7 +348,7 @@ $(BINRLS)/static/$(LIBNAME).a: \
347 348 #---[ Install Targets ]------------------------------------------------------------------
348 349  
349 350 install: \
350   - locale/$(LIBNAME).pot \
  351 + locale/$(GETTEXT_PACKAGE).pot \
351 352 $(foreach PKG, $(INSTALL_PACKAGES), install-$(PKG))
352 353  
353 354 install-linux-lib: \
... ... @@ -362,6 +363,18 @@ install-linux-lib: \
362 363 $(BINRLS)/$(SONAME) \
363 364 $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
364 365  
  366 +install-macos-lib: \
  367 + $(BINRLS)/$(SONAME) \
  368 + install-conf \
  369 + install-locale
  370 +
  371 + # Install library
  372 + @$(MKDIR) $(DESTDIR)$(libdir)
  373 +
  374 + @$(INSTALL_PROGRAM) \
  375 + $(BINRLS)/$(SONAME) \
  376 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  377 +
365 378 install-windows-lib: \
366 379 $(BINRLS)/$(SONAME) \
367 380 install-conf \
... ... @@ -376,7 +389,7 @@ install-windows-lib: \
376 389  
377 390 zip: \
378 391 $(BINRLS)/$(SONAME)
379   - @$(ZIP) -9 -j $(BASEDIR)/@PACKAGE_NAME@-@PACKAGE_VERSION@-@PACKAGE_RELEASE@-@host_cpu@.zip $(BINRLS)/$(SONAME)
  392 + @$(ZIP) -9 -j $(BUILDDIR)/@PACKAGE_NAME@-@PACKAGE_VERSION@-@PACKAGE_RELEASE@-@host_cpu@.zip $(BINRLS)/$(SONAME)
380 393  
381 394 install-static: \
382 395 $(BINRLS)/static/$(LIBNAME).a
... ... @@ -393,7 +406,7 @@ install-conf:
393 406 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/remap
394 407  
395 408 @$(INSTALL_DATA) \
396   - remap/*.xml \
  409 + $(srcdir)/remap/*.xml \
397 410 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/remap
398 411  
399 412 # Install default configs
... ... @@ -401,21 +414,21 @@ install-conf:
401 414 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)
402 415  
403 416 @$(INSTALL_DATA) \
404   - conf/colors.conf \
  417 + $(srcdir)/conf/colors.conf \
405 418 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/colors.conf
406 419  
407 420 install-dev: \
408   - locale/$(LIBNAME).pot \
  421 + locale/$(GETTEXT_PACKAGE).pot \
409 422 install-@OSNAME@-dev
410 423  
411 424 @mkdir -p $(DESTDIR)$(includedir)/v3270
412 425  
413 426 @$(INSTALL_DATA) \
414   - src/include/v3270/*.h \
  427 + $(srcdir)/src/include/v3270/*.h \
415 428 $(DESTDIR)$(includedir)/v3270
416 429  
417 430 @$(INSTALL_DATA) \
418   - src/include/v3270.h \
  431 + $(srcdir)/src/include/v3270.h \
419 432 $(DESTDIR)$(includedir)/v3270.h
420 433  
421 434 # Install PKG-CONFIG files
... ... @@ -426,7 +439,7 @@ install-dev: \
426 439  
427 440 # Install translation files
428 441 @$(MKDIR) $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/pot
429   - @$(INSTALL_DATA) locale/$(LIBNAME).pot $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/pot
  442 + @$(INSTALL_DATA) locale/$(GETTEXT_PACKAGE).pot $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/pot
430 443  
431 444  
432 445 install-linux-dev:
... ... @@ -438,6 +451,15 @@ install-linux-dev:
438 451 $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
439 452 $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@
440 453  
  454 +install-macos-dev:
  455 +
  456 + @$(MKDIR) \
  457 + $(DESTDIR)$(libdir)
  458 +
  459 + @$(LN_S) \
  460 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  461 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@
  462 +
441 463 install-windows-dev: \
442 464 strip \
443 465 $(BINRLS)/$(LIBNAME).dll.a
... ... @@ -468,29 +490,29 @@ install-glade:
468 490 $(DESTDIR)$(datarootdir)/glade/catalogs/v3270.xml
469 491  
470 492 @$(INSTALL_DATA) \
471   - branding/icon-16x16.png \
  493 + $(srcdir)/branding/icon-16x16.png \
472 494 $(DESTDIR)$(datarootdir)/glade/pixmaps/hicolor/16x16/actions/widget-v3270-terminal.png
473 495  
474 496 @$(INSTALL_DATA) \
475   - branding/icon-22x22.png \
  497 + $(srcdir)/branding/icon-22x22.png \
476 498 $(DESTDIR)$(datarootdir)/glade/pixmaps/hicolor/22x22/actions/widget-v3270-terminal.png
477 499  
478 500 #---[ Misc Targets ]---------------------------------------------------------------------
479 501  
480   -$(POTDIR)/$(LIBNAME).pot: \
481   - $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot)
  502 +$(POTDIR)/$(GETTEXT_PACKAGE).pot: \
  503 + $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(SRC).pot)
482 504  
483 505 @rm -f $@
484 506 @$(MKDIR) $(@D)
485 507 @$(MSGCAT) --sort-output $^ > $@
486 508  
487 509 locale: \
488   - locale/$(LIBNAME).pot
  510 + locale/$(GETTEXT_PACKAGE).pot
489 511  
490 512 @$(MAKE) -C locale all
491 513  
492   -locale/$(LIBNAME).pot: \
493   - $(POTDIR)/$(LIBNAME).pot
  514 +locale/$(GETTEXT_PACKAGE).pot: \
  515 + $(POTDIR)/$(GETTEXT_PACKAGE).pot
494 516  
495 517 @rm -f $@
496 518 @$(MKDIR) $(@D)
... ... @@ -548,7 +570,7 @@ $(BINDBG)/$(SONAME): \
548 570 @$(MKDIR) $(@D)
549 571 @echo $< ...
550 572 @$(LD) \
551   - -shared -Wl,-soname,$(@F) \
  573 + @DLL_LDFLAGS@ \
552 574 -o $@ \
553 575 -L$(BINDBG) \
554 576 $(LDFLAGS) \
... ... @@ -562,7 +584,7 @@ clean: \
562 584 cleanDebug \
563 585 cleanRelease
564 586  
565   - @rm -fr $(BASEDIR)/.tmp/$(LIBNAME)
  587 + @rm -fr $(BUILDDIR)/.tmp/$(LIBNAME)
566 588 @rm -fr $(POTDIR)/$(LIBNAME)
567 589 @rm -fr src/include/marshal
568 590 @rm -fr locale/$(LIBNAME).pot
... ... @@ -583,7 +605,7 @@ cleanRelease:
583 605 @rm -fr $(OBJDIR)/marshal
584 606 @rm -f src/terminal/marshal.h
585 607 @rm -f src/filetransfer/marshal.h
586   - @rm -f lib$(LIBNAME).pot
  608 + @rm -f $(GETTEXT_PACKAGE).pot
587 609  
588 610 clean: \
589 611 cleanDebug \
... ...
README.md
... ... @@ -93,7 +93,9 @@ For the supported distributions get the install repositories and instructions fr
93 93 make all
94 94 ```
95 95  
96   -## Building for macOS (using homebrew)
  96 +## Building for macOS
  97 +
  98 +### Using homebrew
97 99  
98 100 1. Build and install [lib3270](../../../lib3270)
99 101  
... ... @@ -106,17 +108,28 @@ For the supported distributions get the install repositories and instructions fr
106 108 3. Configure, build and install
107 109  
108 110 ```shell
109   - ./autogen.sh --prefix="$(brew --cellar)/libv3270/5.3"
  111 + ./autogen.sh --prefix="$(brew --cellar)/libv3270/5.4"
110 112 make all && make install
111 113 brew link libv3270
112 114 ```
113 115  
114   -### Uninstalling
115   -
116   -1. To uninstall
  116 +To uninstall
117 117  
118 118 ```shell
119 119 brew unlink libv3270
120 120 rm -fr "$(brew --cellar)/libv3270"
121 121 ```
122 122  
  123 +### Using jhbuild
  124 +
  125 +1. Install jhbuild and GTK-OSX
  126 +
  127 + https://wiki.gnome.org/Projects/GTK/OSX/Building
  128 +
  129 +2. build
  130 +
  131 + ```shell
  132 + jhbuild --moduleset=https://raw.githubusercontent.com/PerryWerneck/libv3270/macos/mac/libv3270.modules build libv3270
  133 + ```
  134 +
  135 +
... ...
autogen.sh
1 1 #!/bin/bash
2 2  
  3 +builddir=${PWD}
  4 +
3 5 test -n "$srcdir" || srcdir=`dirname "$0"`
4 6 test -n "$srcdir" || srcdir=.
5 7  
... ... @@ -8,7 +10,16 @@ cd &quot;$srcdir&quot;
8 10 mkdir -p scripts
9 11 mkdir -p m4
10 12  
11   -libtoolize --force
  13 +LIBTOOLIZE=$(which libtoolize)
  14 +if [ -z ${LIBTOOLIZE} ]; then
  15 + LIBTOOLIZE=$(which glibtoolize)
  16 +fi
  17 +if [ -z ${LIBTOOLIZE} ]; then
  18 + echo "Can't find libtoolize"
  19 + exit -1
  20 +fi
  21 +
  22 +${LIBTOOLIZE} --force
12 23 if test $? != 0 ; then
13 24 echo "libtoolize failed."
14 25 exit -1
... ... @@ -34,7 +45,11 @@ fi
34 45  
35 46 automake --add-missing 2> /dev/null | true
36 47  
37   -test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
  48 +autopoint
  49 +
  50 +cd "${builddir}"
  51 +
  52 +test -n "$NOCONFIGURE" || "$srcdir/configure" --srcdir=${srcdir} $@
38 53  
39 54  
40 55  
... ...
configure.ac
... ... @@ -52,6 +52,9 @@ AM_INIT_AUTOMAKE
52 52 dnl Check for iconv
53 53 AM_ICONV
54 54  
  55 +dnl Set gettext version
  56 +AM_GNU_GETTEXT_VERSION([0.14])
  57 +
55 58 dnl Checks for programs.
56 59 AC_PROG_CC
57 60 AC_PROG_SED
... ... @@ -103,9 +106,9 @@ case &quot;$host&quot; in
103 106 *-apple-darwin*)
104 107 CFLAGS="$CFLAGS -pthread"
105 108 LDFLAGS="$LDFLAGS -pthread"
106   - app_cv_osname="linux"
  109 + app_cv_osname="macos"
107 110 LOGDIR="/var/log"
108   - DLLEXT=".so"
  111 + DLLEXT=".dylib"
109 112 DLL_LDFLAGS="-shared -Wl,-install_name,\$(@F)"
110 113  
111 114 INSTALL_PACKAGES="linux-lib ${INSTALL_PACKAGES}"
... ... @@ -195,8 +198,8 @@ case &quot;$host&quot; in
195 198 AC_SUBST(SONAME,libv3270.dll)
196 199 ;;
197 200  
198   - s390x-*)
199   - AC_SUBST(SONAME,libv3270.so)
  201 + *-apple-darwin*)
  202 + AC_SUBST(SONAME,libv3270.dylib.$app_vrs_major.$app_vrs_minor)
200 203 ;;
201 204  
202 205 *)
... ... @@ -358,7 +361,7 @@ dnl Directory config
358 361 dnl ---------------------------------------------------------------------------
359 362  
360 363 AC_ARG_WITH([build-dir], [AS_HELP_STRING([--with-build-dir], [Setup build path])], [ app_cv_buildir="$withval" ],[ app_cv_buildir="$ac_pwd" ])
361   -AC_SUBST(BASEDIR,$app_cv_buildir)
  364 +AC_SUBST(BUILDDIR,$app_cv_buildir)
362 365  
363 366 dnl ---------------------------------------------------------------------------
364 367 dnl Configure which files to generate.
... ...
locale/Makefile.in
... ... @@ -74,6 +74,7 @@ $(DESTDIR)$(localedir)/%/LC_MESSAGES/$(GETTEXT_PACKAGE).mo: \
74 74 #---[ Targets ]--------------------------------------------------------------------------
75 75  
76 76 all: \
  77 + $(GETTEXT_PACKAGE).pot \
77 78 $(foreach SRC, $(basename $(wildcard *.po)), $(BINDIR)/$(SRC)/LC_MESSAGES/$(GETTEXT_PACKAGE).mo)
78 79  
79 80 install: \
... ...
locale/pt_BR.po
1 1 #
2   -# Perry Werneck <perry.werneck@gmail.com>, 2012, 2013, 2014, 2016, 2017, 2018, 2019, 2020, 2021.
  2 +# Perry Werneck <perry.werneck@gmail.com>, 2012-2021.
3 3 #
4 4 msgid ""
5 5 msgstr ""
6 6 "Project-Id-Version: pw3270 5.0\n"
7 7 "Report-Msgid-Bugs-To: \n"
8   -"POT-Creation-Date: 2021-04-19 00:14-0300\n"
9   -"PO-Revision-Date: 2021-09-01 23:54-0300\n"
  8 +"POT-Creation-Date: 2021-11-29 14:51-0300\n"
  9 +"PO-Revision-Date: 2021-11-22 22:07-0300\n"
10 10 "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n"
11   -"Language-Team: Português <perry.werneck@gmail.com>\n"
  11 +"Language-Team: Brazilian Portuguese <perry.werneck@gmail.com>\n"
12 12 "Language: pt_BR\n"
13 13 "MIME-Version: 1.0\n"
14 14 "Content-Type: text/plain; charset=UTF-8\n"
... ... @@ -16,17 +16,17 @@ msgstr &quot;&quot;
16 16 "X-Poedit-Language: Portuguese\n"
17 17 "X-Poedit-Country: BRAZIL\n"
18 18 "X-Poedit-SourceCharset: utf-8\n"
19   -"Plural-Forms: nplurals=2; plural=(n > 1);\n"
20   -"X-Generator: Gtranslator 2.91.7\n"
  19 +"Plural-Forms: nplurals=2; plural=(n > 1)\n"
  20 +"X-Generator: Gtranslator 3.38.0\n"
21 21  
22   -#: src/dialogs/settings/host.c:169
  22 +#: src/dialogs/settings/host.c:170
23 23 msgid "16 colors"
24 24 msgstr "16 cores"
25 25  
26   -#: src/filetransfer/v3270ftprogress.c:386 src/filetransfer/v3270ft.c:353
27   -#: src/dialogs/print/settingsdialog.c:284
  26 +#: src/filetransfer/v3270ft.c:354 src/filetransfer/v3270ftprogress.c:386
28 27 #: src/dialogs/print/settingsdialog.c:286
29 28 #: src/dialogs/print/settingsdialog.c:288
  29 +#: src/dialogs/print/settingsdialog.c:290
30 30 msgid "3270 File transfer"
31 31 msgstr "Transferência de arquivos 3270"
32 32  
... ... @@ -34,11 +34,11 @@ msgstr &quot;Transferência de arquivos 3270&quot;
34 34 msgid "3270 screen"
35 35 msgstr "Tela 3270"
36 36  
37   -#: src/dialogs/settings/host.c:168
  37 +#: src/dialogs/settings/host.c:169
38 38 msgid "8 colors"
39 39 msgstr "8 cores"
40 40  
41   -#: src/terminal/widget.c:159
  41 +#: src/terminal/widget.c:152
42 42 msgid ""
43 43 "<b>Identity not verified</b>\n"
44 44 "Disconnected from host"
... ... @@ -54,19 +54,19 @@ msgstr &quot;&lt;b&gt;Opções de texto&lt;/b&gt;&quot;
54 54 msgid "A_ppend to file"
55 55 msgstr "_Adicionar ao arquivo"
56 56  
57   -#: src/dialogs/security.c:238
  57 +#: src/dialogs/security.c:239
58 58 msgid "About security"
59 59 msgstr "Sobre a segurança"
60 60  
61   -#: src/dialogs/settings/accelerator.c:196
  61 +#: src/dialogs/settings/accelerator.c:195
62 62 msgid "Accelerator"
63 63 msgstr "Atalho"
64 64  
65   -#: src/dialogs/settings/accelerator.c:334
  65 +#: src/dialogs/settings/accelerator.c:333
66 66 msgid "Accelerator is in use"
67 67 msgstr "Atalho está em uso"
68 68  
69   -#: src/dialogs/settings/accelerator.c:245
  69 +#: src/dialogs/settings/accelerator.c:244
70 70 msgid "Accelerators"
71 71 msgstr "Atalhos"
72 72  
... ... @@ -74,12 +74,12 @@ msgstr &quot;Atalhos&quot;
74 74 msgid "Action Name"
75 75 msgstr "Nome da Ação"
76 76  
77   -#: src/dialogs/print/settingsdialog.c:200
78   -#: src/dialogs/print/settingsdialog.c:236
  77 +#: src/dialogs/print/settingsdialog.c:202
  78 +#: src/dialogs/print/settingsdialog.c:238
79 79 msgid "Activity already on the queue"
80 80 msgstr "Atividade já está na fila"
81 81  
82   -#: src/terminal/actions/table.c:99
  82 +#: src/terminal/actions/table.c:63
83 83 msgid "Add to copy"
84 84 msgstr "Adicionar à cópia"
85 85  
... ... @@ -91,7 +91,7 @@ msgstr &quot;Endereço ou nome do host a conectar.&quot;
91 91 msgid "All files"
92 92 msgstr "Todos os arquivos"
93 93  
94   -#: src/dialogs/settings/accelerator.c:206
  94 +#: src/dialogs/settings/accelerator.c:205
95 95 msgid "Alternative"
96 96 msgstr "Alternativa"
97 97  
... ... @@ -111,11 +111,11 @@ msgstr &quot;&quot;
111 111 msgid "An invalid SEND or RECEIVE parameter was sent to the host."
112 112 msgstr "Um parametro de ENVIO/RECEBIMENTO inválido foi enviado para o host."
113 113  
114   -#: src/terminal/actions/table.c:101
  114 +#: src/terminal/actions/table.c:65
115 115 msgid "Append selected area to current clipboard contents"
116 116 msgstr "Adiciona a área selecionada no conteúdo da área de transferência"
117 117  
118   -#: src/terminal/actions/table.c:100
  118 +#: src/terminal/actions/table.c:64
119 119 msgid "Append selection to clipboard"
120 120 msgstr "Adiciona seleção na área de transferência"
121 121  
... ... @@ -123,16 +123,16 @@ msgstr &quot;Adiciona seleção na área de transferência&quot;
123 123 msgid "Appends the source file to the destination file."
124 124 msgstr "Adiciona conteúdo do arquivo origem ao final do arquivo destino."
125 125  
126   -#: src/dialogs/settings/accelerator.c:316
  126 +#: src/dialogs/settings/accelerator.c:315
127 127 #, c-format
128 128 msgid "Assign it to action (<b>%s</b>)?"
129 129 msgstr "Associar com a ação (<b>%s</b>)?"
130 130  
131   -#: src/dialogs/settings/host.c:463
  131 +#: src/dialogs/settings/host.c:464
132 132 msgid "Auto _disconnect"
133 133 msgstr "Desconexão automática"
134 134  
135   -#: src/dialogs/font/chooser.c:279
  135 +#: src/dialogs/font/chooser.c:269
136 136 msgid "Available fonts"
137 137 msgstr "Fontes disponíveis"
138 138  
... ... @@ -140,8 +140,8 @@ msgstr &quot;Fontes disponíveis&quot;
140 140 msgid "Avblock"
141 141 msgstr "Avblock"
142 142  
143   -#: src/dialogs/print/settingsdialog.c:411
144   -#: src/dialogs/print/settingsdialog.c:430
  143 +#: src/dialogs/print/settingsdialog.c:413
  144 +#: src/dialogs/print/settingsdialog.c:432
145 145 msgid "B_egin transfer"
146 146 msgstr "Iniciar transferência"
147 147  
... ... @@ -161,7 +161,7 @@ msgstr &quot;Tamanho do bloco:&quot;
161 161 msgid "Blue"
162 162 msgstr "Azul"
163 163  
164   -#: src/dialogs/font/chooser.c:328
  164 +#: src/dialogs/font/chooser.c:318
165 165 msgid "Bold"
166 166 msgstr "Negrito"
167 167  
... ... @@ -173,7 +173,7 @@ msgstr &quot;C_odificação de caracteres&quot;
173 173 msgid "C_olor scheme:"
174 174 msgstr "Tema de c_ores:"
175 175  
176   -#: src/dialogs/print/settingsdialog.c:244
  176 +#: src/dialogs/print/settingsdialog.c:246
177 177 msgid "Can't add activity"
178 178 msgstr "Não é possível adicionar atividade"
179 179  
... ... @@ -205,7 +205,7 @@ msgstr &quot;Erro ao converter valor do cgcsid&quot;
205 205 msgid "Can't parse character value"
206 206 msgstr "Erro ao analisar valor de caractere"
207 207  
208   -#: src/selection/linux/paste.c:81 src/selection/linux/paste.c:115
  208 +#: src/selection/windows/paste.c:79 src/selection/windows/paste.c:119
209 209 msgid "Can't paste"
210 210 msgstr "Não é possivel colar"
211 211  
... ... @@ -213,13 +213,13 @@ msgstr &quot;Não é possivel colar&quot;
213 213 msgid "Can't paste text"
214 214 msgstr "Não é possível colar texto"
215 215  
216   -#: src/filetransfer/save.c:117 src/filetransfer/activitylist.c:436
217   -#: src/trace/trace.c:484 src/dialogs/transfer.c:91 src/dialogs/save/save.c:608
  216 +#: src/filetransfer/activitylist.c:436 src/filetransfer/save.c:117
  217 +#: src/trace/trace.c:483 src/dialogs/transfer.c:92 src/dialogs/save/save.c:608
218 218 #, c-format
219 219 msgid "Can't save %s"
220 220 msgstr "Não foi possível salvar arquivo %s"
221 221  
222   -#: src/filetransfer/worker.c:618 src/filetransfer/v3270ftprogress.c:781
  222 +#: src/filetransfer/v3270ftprogress.c:781 src/filetransfer/worker.c:618
223 223 msgid "Can't set callback table"
224 224 msgstr "Não foi possível setar a tabela de retornos"
225 225  
... ... @@ -227,16 +227,16 @@ msgstr &quot;Não foi possível setar a tabela de retornos&quot;
227 227 msgid "Can't set lib3270 I/O controller"
228 228 msgstr "Não foi possível registrar manipuladores de I/O 3270"
229 229  
230   -#: src/filetransfer/worker.c:599 src/filetransfer/v3270ftprogress.c:768
  230 +#: src/filetransfer/v3270ftprogress.c:768 src/filetransfer/worker.c:599
231 231 msgid "Can't start file transfer session"
232 232 msgstr "Não foi possível iniciar transferência de arquivo"
233 233  
234   -#: src/filetransfer/v3270ftprogress.c:433 src/filetransfer/transfer.c:89
235   -#: src/dialogs/settings/host.c:366 src/tools/entry.c:99
  234 +#: src/filetransfer/transfer.c:90 src/filetransfer/v3270ftprogress.c:433
  235 +#: src/dialogs/settings/host.c:367 src/tools/entry.c:99
236 236 msgid "Cancel"
237 237 msgstr "Cancelar"
238 238  
239   -#: src/filetransfer/transfer.c:90
  239 +#: src/filetransfer/transfer.c:91
240 240 msgid "Cancel transfer operation."
241 241 msgstr "Cancelar transferência"
242 242  
... ... @@ -244,23 +244,19 @@ msgstr &quot;Cancelar transferência&quot;
244 244 msgid "Check this if the file consists of character data only."
245 245 msgstr "Marque se o arquivo contem apenas texto."
246 246  
247   -#: src/dialogs/settings/clipboard.c:420
  247 +#: src/dialogs/settings/clipboard.c:432
248 248 msgid "Clipboard"
249 249 msgstr "Área de transferência"
250 250  
251   -#: src/terminal/properties/init.c:130
  251 +#: src/terminal/properties/init.c:120
252 252 msgid "Clipboard name"
253 253 msgstr "Nome da área de transferência"
254 254  
255   -#: src/dialogs/settings/clipboard.c:419
256   -msgid "Clipboard properties"
257   -msgstr "Configuração da área de transferência"
258   -
259 255 #: src/dialogs/settings/colors.c:350
260 256 msgid "Color _theme"
261 257 msgstr "Tema de cores"
262 258  
263   -#: src/dialogs/settings/clipboard.c:110
  259 +#: src/dialogs/settings/clipboard.c:101
264 260 msgid "Color theme"
265 261 msgstr "Tema de cores"
266 262  
... ... @@ -268,11 +264,11 @@ msgstr &quot;Tema de cores&quot;
268 264 msgid "Colors"
269 265 msgstr "Cores"
270 266  
271   -#: src/terminal/properties/init.c:178
  267 +#: src/terminal/properties/init.c:184
272 268 msgid "Comma separated list of LU names"
273 269 msgstr "Lista de LUs separadas por vírgula"
274 270  
275   -#: src/dialogs/settings/host.c:241
  271 +#: src/dialogs/settings/host.c:242
276 272 msgid "Comma separated list of LU names."
277 273 msgstr "Lista de LUs separadas por vírgula."
278 274  
... ... @@ -280,47 +276,47 @@ msgstr &quot;Lista de LUs separadas por vírgula.&quot;
280 276 msgid "Comma-separated values (CSV)"
281 277 msgstr "Arquivo separado por vírgulas (CSV)"
282 278  
283   -#: src/trace/trace.c:358
  279 +#: src/trace/trace.c:357
284 280 msgid "Command to execute"
285 281 msgstr "Comando a executar"
286 282  
287   -#: src/dialogs/settings/host.c:430
  283 +#: src/dialogs/settings/host.c:431
288 284 msgid "Connection"
289 285 msgstr "Conexão"
290 286  
291   -#: src/terminal/actions/table.c:70 src/terminal/actions/table.c:111
  287 +#: src/terminal/actions/table.c:52 src/terminal/actions/table.c:92
292 288 msgid "Copy"
293 289 msgstr "Copiar"
294 290  
295   -#: src/terminal/actions/table.c:79
  291 +#: src/terminal/actions/table.c:72
296 292 msgid "Copy as HTML"
297 293 msgstr "Copiar como HTML"
298 294  
299   -#: src/terminal/actions/table.c:88
  295 +#: src/terminal/actions/table.c:81
300 296 msgid "Copy as image"
301 297 msgstr "Copiar como imagem"
302 298  
303   -#: src/terminal/actions/table.c:112
  299 +#: src/terminal/actions/table.c:93
304 300 msgid "Copy as plain text"
305 301 msgstr "Copiar como texto puro"
306 302  
307   -#: src/terminal/actions/table.c:122 src/terminal/actions/table.c:123
  303 +#: src/terminal/actions/table.c:103 src/terminal/actions/table.c:104
308 304 msgid "Copy as table"
309 305 msgstr "Copiar como tabela"
310 306  
311   -#: src/dialogs/settings/clipboard.c:250
  307 +#: src/dialogs/settings/clipboard.c:252
312 308 msgid "Copy options"
313 309 msgstr "Opções da cópia"
314 310  
315   -#: src/terminal/actions/table.c:80
  311 +#: src/terminal/actions/table.c:73
316 312 msgid "Copy selection in HTML format"
317 313 msgstr "Copia seleção em formato HTML"
318 314  
319   -#: src/terminal/actions/table.c:89
  315 +#: src/terminal/actions/table.c:82
320 316 msgid "Copy selection in image format"
321 317 msgstr "Copia imagem da seleção"
322 318  
323   -#: src/terminal/actions/table.c:71
  319 +#: src/terminal/actions/table.c:53
324 320 msgid "Copy selection to clipboard"
325 321 msgstr "Salvar seleção para área de transferência"
326 322  
... ... @@ -358,24 +354,24 @@ msgstr &quot;Posição atual da transferência&quot;
358 354 msgid "Current:"
359 355 msgstr "Atual:"
360 356  
361   -#: src/dialogs/settings/host.c:227
  357 +#: src/dialogs/settings/host.c:228
362 358 msgid "Custom Remap"
363 359 msgstr "Mapeamento personalizado"
364 360  
365   -#: src/terminal/actions/table.c:133 src/terminal/actions/table.c:142
366   -#: src/terminal/actions/table.c:153
  361 +#: src/terminal/actions/table.c:114 src/terminal/actions/table.c:123
  362 +#: src/terminal/actions/table.c:134
367 363 msgid "Cut"
368 364 msgstr "Recortar"
369 365  
370   -#: src/terminal/actions/table.c:143
  366 +#: src/terminal/actions/table.c:124
371 367 msgid "Cut and append to copy"
372 368 msgstr "Recortar e adicionar à cópia"
373 369  
374   -#: src/terminal/actions/table.c:154
  370 +#: src/terminal/actions/table.c:135
375 371 msgid "Cut as plain text"
376 372 msgstr "Recortar como texto puro"
377 373  
378   -#: src/terminal/actions/table.c:164 src/terminal/actions/table.c:165
  374 +#: src/terminal/actions/table.c:145 src/terminal/actions/table.c:146
379 375 msgid "Cut as table"
380 376 msgstr "Recortar como tabela"
381 377  
... ... @@ -403,11 +399,15 @@ msgstr &quot;Turquesa Escuro&quot;
403 399 msgid "Default"
404 400 msgstr "Padrão"
405 401  
406   -#: src/dialogs/popups.c:155
  402 +#: src/dialogs/settings/clipboard.c:174
  403 +msgid "Detect http:// or https://"
  404 +msgstr "Detectar http:// ou https://"
  405 +
  406 +#: src/dialogs/popups.c:168
407 407 msgid "Don't ask again"
408 408 msgstr "Não perguntar de novo"
409 409  
410   -#: src/dialogs/font/chooser.c:335
  410 +#: src/dialogs/font/chooser.c:325
411 411 msgid "Dynamic font spacing"
412 412 msgstr "Espaçamento dinâmico"
413 413  
... ... @@ -415,11 +415,35 @@ msgstr &quot;Espaçamento dinâmico&quot;
415 415 msgid "ETA:"
416 416 msgstr "ETA:"
417 417  
418   -#: src/terminal/actions/pfkey.c:105 src/terminal/actions/pakey.c:105
  418 +#: src/terminal/actions/table.c:354
  419 +msgid "Edit clipboard settings"
  420 +msgstr "Altera configurações da area de transferência"
  421 +
  422 +#: src/terminal/actions/table.c:337
  423 +msgid "Edit host and terminal emulation settings"
  424 +msgstr "Alterar configurações do servidor e emulação"
  425 +
  426 +#: src/terminal/actions/table.c:328
  427 +msgid "Edit keyboard accelerators"
  428 +msgstr "Alterar atalhos de teclado"
  429 +
  430 +#: src/terminal/actions/table.c:346
  431 +msgid "Edit terminal colors"
  432 +msgstr "Altera cores do terminal"
  433 +
  434 +#: src/terminal/actions/pakey.c:105 src/terminal/actions/pfkey.c:105
419 435 msgid "Emit a PA Key action"
420 436 msgstr "Emite uma ação de tecla PA"
421 437  
422   -#: src/dialogs/settings/host.c:440
  438 +#: src/terminal/properties/init.c:168
  439 +msgid ""
  440 +"Emit signal 'open-url' when an http:// or https:// string is selected by "
  441 +"action 'word-select'"
  442 +msgstr ""
  443 +"Emite sinal 'open-url' quando uma string iniciada com http:// ou https:// é "
  444 +"selecionada pela ação 'word-select'"
  445 +
  446 +#: src/dialogs/settings/host.c:441
423 447 msgid "Emulation"
424 448 msgstr "Emulação"
425 449  
... ... @@ -447,11 +471,11 @@ msgstr &quot;Cor dos campos&quot;
447 471 msgid "File _Format"
448 472 msgstr "_Formato do arquivo"
449 473  
450   -#: src/dialogs/print/settingsdialog.c:361
  474 +#: src/dialogs/print/settingsdialog.c:363
451 475 msgid "Files to transfer"
452 476 msgstr "Arquivos a transferir"
453 477  
454   -#: src/terminal/actions/table.c:240
  478 +#: src/terminal/actions/table.c:221
455 479 msgid "Fit best"
456 480 msgstr "Melhor tamanho"
457 481  
... ... @@ -459,7 +483,7 @@ msgstr &quot;Melhor tamanho&quot;
459 483 msgid "Fixed"
460 484 msgstr "Fixo"
461 485  
462   -#: src/terminal/properties/init.c:224
  486 +#: src/terminal/properties/init.c:230
463 487 msgid "Flags to cut&paste"
464 488 msgstr "Opções para recortar & colar"
465 489  
... ... @@ -480,7 +504,7 @@ msgstr &quot;&quot;
480 504 "Seguindo a convenção para arquivos texto ASCII, LF é usado para terminar "
481 505 "registros no arquivo do PC."
482 506  
483   -#: src/dialogs/font/chooser.c:350 src/dialogs/settings/clipboard.c:93
  507 +#: src/dialogs/font/chooser.c:340 src/dialogs/settings/clipboard.c:84
484 508 msgid "Font"
485 509 msgstr "Fonte"
486 510  
... ... @@ -494,11 +518,15 @@ msgstr &quot;Fonte \&quot;%s\&quot; não é mono espaçada&quot;
494 518 msgid "Font \"%s\" is valid"
495 519 msgstr "Fonte \"%s\" é válida"
496 520  
497   -#: src/terminal/properties/init.c:82
  521 +#: src/terminal/properties/init.c:72
498 522 msgid "Font family for terminal contents"
499 523 msgstr "Familia da fonte usada no terminal"
500 524  
501   -#: src/dialogs/settings/clipboard.c:127
  525 +#: src/terminal/actions/table.c:362
  526 +msgid "Font settings"
  527 +msgstr "Configurações de fonte"
  528 +
  529 +#: src/dialogs/settings/clipboard.c:118
502 530 msgid "Format"
503 531 msgstr "Formato"
504 532  
... ... @@ -510,11 +538,11 @@ msgstr &quot;Caminho completo do arquivo local&quot;
510 538 msgid "Full path of remote file"
511 539 msgstr "Caminho completo do arquivo remoto"
512 540  
513   -#: src/filetransfer/v3270ft.c:371
  541 +#: src/filetransfer/v3270ft.c:372
514 542 msgid "Get transfer queue from an external XML file"
515 543 msgstr "Obtém a fila de transferência de um arquivo XML externo"
516 544  
517   -#: src/dialogs/print/settingsdialog.c:346
  545 +#: src/dialogs/print/settingsdialog.c:348
518 546 msgid "Get transfer queue from file"
519 547 msgstr "Obtêm a fila de arquivos a transferir de um arquivo"
520 548  
... ... @@ -526,15 +554,19 @@ msgstr &quot;Cinza&quot;
526 554 msgid "Green"
527 555 msgstr "Verde"
528 556  
529   -#: src/dialogs/settings/clipboard.c:252
  557 +#: src/dialogs/settings/clipboard.c:254
530 558 msgid "HTML options"
531 559 msgstr "Opções HTML"
532 560  
533   -#: src/dialogs/settings/host.c:580
  561 +#: src/dialogs/settings/host.c:581
534 562 msgid "Host"
535 563 msgstr "Servidor"
536 564  
537   -#: src/dialogs/settings/host.c:579
  565 +#: src/terminal/actions/table.c:336
  566 +msgid "Host and emulation settings"
  567 +msgstr "Configuração de servidor e emulação"
  568 +
  569 +#: src/dialogs/settings/host.c:580
538 570 msgid "Host settings"
539 571 msgstr "Configurações do servidor"
540 572  
... ... @@ -546,15 +578,15 @@ msgstr &quot;Nome do host&quot;
546 578 msgid "HyperText Markup Language (HTML)"
547 579 msgstr "Documento HTML"
548 580  
549   -#: src/dialogs/settings/host.c:139
  581 +#: src/dialogs/settings/host.c:140
550 582 msgid "IBM AS/400"
551 583 msgstr "IBM AS/400"
552 584  
553   -#: src/dialogs/settings/host.c:138
  585 +#: src/dialogs/settings/host.c:139
554 586 msgid "IBM S/390"
555 587 msgstr "IBM S/390"
556 588  
557   -#: src/terminal/properties/init.c:113 src/dialogs/settings/host.c:467
  589 +#: src/terminal/properties/init.c:103 src/dialogs/settings/host.c:468
558 590 msgid "IDLE minutes for automatic disconnection"
559 591 msgstr "Minutos para desconexão automática"
560 592  
... ... @@ -566,27 +598,27 @@ msgstr &quot;Nome do ícone&quot;
566 598 msgid "If the action can be activated"
567 599 msgstr "Se a ação pode ser ativada"
568 600  
569   -#: src/filetransfer/transfer.c:80
  601 +#: src/filetransfer/transfer.c:81
570 602 msgid "Ignore"
571 603 msgstr "Ignore"
572 604  
573   -#: src/filetransfer/transfer.c:81
  605 +#: src/filetransfer/transfer.c:82
574 606 msgid "Ignore the fail and remove the file from queue."
575 607 msgstr "Ignore the fail and remove the file from queue."
576 608  
577   -#: src/dialogs/settings/clipboard.c:173
  609 +#: src/dialogs/settings/clipboard.c:164
578 610 msgid "Image copy"
579 611 msgstr "Copiar imagem"
580 612  
581   -#: src/terminal/actions/table.c:220
  613 +#: src/terminal/actions/table.c:201
582 614 msgid "Increase the font size"
583 615 msgstr "Aumenta o tamanho da fonte"
584 616  
585   -#: src/terminal/actions/table.c:177
  617 +#: src/terminal/actions/table.c:158
586 618 msgid "Input current clipboard contents to screen"
587 619 msgstr "Insere conteúdo da área de transferência"
588 620  
589   -#: src/filetransfer/v3270ft.c:387
  621 +#: src/filetransfer/v3270ft.c:388
590 622 msgid "Insert new file in the transfer queue"
591 623 msgstr "Inserir um novo arquivo na fila de transferência"
592 624  
... ... @@ -598,7 +630,7 @@ msgstr &quot;Intensificado/Protegido&quot;
598 630 msgid "Intensified/Unprotected"
599 631 msgstr "Intensificado/Desprotegido"
600 632  
601   -#: src/terminal/callbacks.c:463
  633 +#: src/terminal/callbacks.c:489
602 634 #, c-format
603 635 msgid ""
604 636 "Invalid callback table, the release %s of lib%s can't be used (expecting "
... ... @@ -615,24 +647,24 @@ msgstr &quot;Valor cgcsgid é inválido&quot;
615 647 msgid "Invalid remap scope"
616 648 msgstr "Escopo de mapeamento inválido"
617 649  
618   -#: src/dialogs/security.c:185
  650 +#: src/dialogs/security.c:186
619 651 msgid "Invalid state"
620 652 msgstr "Estado inválido"
621 653  
622   -#: src/dialogs/settings/accelerator.c:150
623   -#: src/dialogs/settings/accelerator.c:244
  654 +#: src/terminal/actions/table.c:327 src/dialogs/settings/accelerator.c:149
  655 +#: src/dialogs/settings/accelerator.c:243
624 656 msgid "Keyboard accelerators"
625 657 msgstr "Atalhos de teclado"
626 658  
627   -#: src/dialogs/settings/host.c:240
  659 +#: src/dialogs/settings/host.c:241
628 660 msgid "L_U Names"
629 661 msgstr "Nomes de L_U"
630 662  
631   -#: src/filetransfer/v3270ft.c:198 src/filetransfer/activitylist.c:384
  663 +#: src/filetransfer/activitylist.c:384 src/filetransfer/v3270ft.c:199
632 664 msgid "Load"
633 665 msgstr "Load"
634 666  
635   -#: src/filetransfer/v3270ft.c:197 src/filetransfer/activitylist.c:383
  667 +#: src/filetransfer/activitylist.c:383 src/filetransfer/v3270ft.c:198
636 668 msgid "Load queue from file"
637 669 msgstr "Ler a fila de um arquivo"
638 670  
... ... @@ -644,7 +676,7 @@ msgstr &quot;Arquivo local:&quot;
644 676 msgid "Local:"
645 677 msgstr "Local:"
646 678  
647   -#: src/dialogs/settings/host.c:215
  679 +#: src/dialogs/settings/host.c:216
648 680 msgid "Makes the screen larger than the default for the chosen model number."
649 681 msgstr "Usa tamanho maior do que o padrão para o modelo escolhido."
650 682  
... ... @@ -652,23 +684,23 @@ msgstr &quot;Usa tamanho maior do que o padrão para o modelo escolhido.&quot;
652 684 msgid "Misc colors"
653 685 msgstr "Cores diversas"
654 686  
655   -#: src/dialogs/settings/host.c:196
  687 +#: src/dialogs/settings/host.c:197
656 688 msgid "Model 2 - 80x24"
657 689 msgstr "Modelo 2 - 80x24"
658 690  
659   -#: src/dialogs/settings/host.c:197
  691 +#: src/dialogs/settings/host.c:198
660 692 msgid "Model 3 - 80x32"
661 693 msgstr "Modelo 3 - 80x32"
662 694  
663   -#: src/dialogs/settings/host.c:198
  695 +#: src/dialogs/settings/host.c:199
664 696 msgid "Model 4 - 80x43"
665 697 msgstr "Modelo 4 - 80x43"
666 698  
667   -#: src/dialogs/settings/host.c:199
  699 +#: src/dialogs/settings/host.c:200
668 700 msgid "Model 5 - 132x27"
669 701 msgstr "Modelo 5 - 132x27"
670 702  
671   -#: src/dialogs/settings/host.c:167
  703 +#: src/dialogs/settings/host.c:168
672 704 msgid "Monochrome"
673 705 msgstr "Monocromático"
674 706  
... ... @@ -676,11 +708,11 @@ msgstr &quot;Monocromático&quot;
676 708 msgid "Mustard"
677 709 msgstr "Mostarda"
678 710  
679   -#: src/dialogs/settings/accelerator.c:158
  711 +#: src/dialogs/settings/accelerator.c:157
680 712 msgid "Name"
681 713 msgstr "Nome"
682 714  
683   -#: src/dialogs/settings/host.c:430
  715 +#: src/dialogs/settings/host.c:431
684 716 msgid "Network connection settings"
685 717 msgstr "Configuração da conexão de rede"
686 718  
... ... @@ -688,11 +720,11 @@ msgstr &quot;Configuração da conexão de rede&quot;
688 720 msgid "No active transfer"
689 721 msgstr "Nenhuma transferência ativa"
690 722  
691   -#: src/dialogs/popups.c:141
  723 +#: src/dialogs/popups.c:154
692 724 msgid "No host"
693 725 msgstr "Nenhum servidor"
694 726  
695   -#: src/terminal/properties/get.c:205
  727 +#: src/terminal/properties/get.c:193
696 728 msgid "No host defined"
697 729 msgstr "Nenhum servidor definido"
698 730  
... ... @@ -708,18 +740,14 @@ msgstr &quot;Nenhuma transferência&quot;
708 740 msgid "No transfer in progress"
709 741 msgstr "Nenhuma transferência em andamento"
710 742  
711   -#: src/dialogs/settings/clipboard.c:317
  743 +#: src/dialogs/settings/clipboard.c:328
712 744 msgid "None (Don't export color)"
713 745 msgstr "Nenhum (Não exporta cores)"
714 746  
715   -#: src/dialogs/settings/clipboard.c:437
  747 +#: src/dialogs/settings/clipboard.c:449
716 748 msgid "None (Don't export font name)"
717 749 msgstr "Nenhuma (Não exporta fontes)"
718 750  
719   -#: src/selection/linux/paste.c:117
720   -msgid "None of the screens in the clipboard match with the current one."
721   -msgstr "Nenhuma das telas da área de transferência corresponde à atual."
722   -
723 751 #: src/dialogs/settings/colors.c:174
724 752 msgid "Normal/Protected"
725 753 msgstr "Normal/Protegido"
... ... @@ -728,7 +756,7 @@ msgstr &quot;Normal/Protegido&quot;
728 756 msgid "Normal/Unprotected"
729 757 msgstr "Normal/Desprotegido"
730 758  
731   -#: src/selection/linux/paste.c:77
  759 +#: src/selection/windows/paste.c:75
732 760 msgid "Not the same terminal type"
733 761 msgstr "O tipo de terminal é diferente"
734 762  
... ... @@ -764,19 +792,23 @@ msgstr &quot;Operação falhou&quot;
764 792 msgid "Options"
765 793 msgstr "Opções"
766 794  
  795 +#: src/dialogs/settings/clipboard.c:431
  796 +msgid "Options for select, cut and paste actions"
  797 +msgstr "Configuração para selecionar, recortar e colar"
  798 +
767 799 #: src/dialogs/settings/colors.c:165
768 800 msgid "Orange"
769 801 msgstr "Laranja"
770 802  
771   -#: src/dialogs/settings/host.c:140
  803 +#: src/dialogs/settings/host.c:141
772 804 msgid "Other (TSO)"
773 805 msgstr "Outro (TSO)"
774 806  
775   -#: src/dialogs/settings/host.c:141
  807 +#: src/dialogs/settings/host.c:142
776 808 msgid "Other (VM/CMS)"
777 809 msgstr "Outro (VM/CMS)"
778 810  
779   -#: src/dialogs/settings/host.c:214
  811 +#: src/dialogs/settings/host.c:215
780 812 msgid "Oversize"
781 813 msgstr "Oversize"
782 814  
... ... @@ -784,23 +816,23 @@ msgstr &quot;Oversize&quot;
784 816 msgid "Parameter Type"
785 817 msgstr "Tipo de parâmetro"
786 818  
787   -#: src/terminal/actions/table.c:175 src/terminal/actions/table.c:187
  819 +#: src/terminal/actions/table.c:156 src/terminal/actions/table.c:168
788 820 msgid "Paste"
789 821 msgstr "Colar"
790 822  
791   -#: src/terminal/actions/table.c:188
  823 +#: src/terminal/actions/table.c:169
792 824 msgid "Paste as plain text"
793 825 msgstr "Colar como texto puro"
794 826  
795   -#: src/terminal/actions/table.c:176
  827 +#: src/terminal/actions/table.c:157
796 828 msgid "Paste clipboard contents"
797 829 msgstr "Colar conteúdo da área de transferência"
798 830  
799   -#: src/terminal/actions/table.c:197
  831 +#: src/terminal/actions/table.c:178
800 832 msgid "Paste file"
801 833 msgstr "Colar arquivo"
802 834  
803   -#: src/terminal/actions/table.c:207 src/dialogs/settings/clipboard.c:153
  835 +#: src/terminal/actions/table.c:188 src/dialogs/settings/clipboard.c:144
804 836 msgid "Paste formatted screen"
805 837 msgstr "Colar tela formatada"
806 838  
... ... @@ -808,15 +840,15 @@ msgstr &quot;Colar tela formatada&quot;
808 840 msgid "Paste from file"
809 841 msgstr "Colar de um arquivo"
810 842  
811   -#: src/terminal/actions/table.c:198
  843 +#: src/terminal/actions/table.c:179
812 844 msgid "Paste from text file"
813 845 msgstr "Colar de um arquivo texto"
814 846  
815   -#: src/dialogs/settings/clipboard.c:251
  847 +#: src/dialogs/settings/clipboard.c:253
816 848 msgid "Paste options"
817 849 msgstr "Opções para colar"
818 850  
819   -#: src/terminal/actions/table.c:208
  851 +#: src/terminal/actions/table.c:189
820 852 msgid "Paste similar screen from clipboard"
821 853 msgstr "Colar tela semelhante"
822 854  
... ... @@ -824,11 +856,11 @@ msgstr &quot;Colar tela semelhante&quot;
824 856 msgid "Path and name of the local file"
825 857 msgstr "Caminho e nome do arquivo local"
826 858  
827   -#: src/dialogs/settings/host.c:228
  859 +#: src/dialogs/settings/host.c:229
828 860 msgid "Path to XML file with custom charset mapping."
829 861 msgstr "Caminho do arquivo XML com o mapeamento personalizado de caracteres."
830 862  
831   -#: src/dialogs/security.c:137 src/dialogs/security.c:156
  863 +#: src/dialogs/security.c:138 src/dialogs/security.c:157
832 864 msgid "Peer certificate"
833 865 msgstr "Certificado apresentado"
834 866  
... ... @@ -840,7 +872,7 @@ msgstr &quot;Rosa&quot;
840 872 msgid "Plain text"
841 873 msgstr "Texto puro"
842 874  
843   -#: src/dialogs/settings/clipboard.c:385
  875 +#: src/dialogs/settings/clipboard.c:397
844 876 msgid "Plain text only"
845 877 msgstr "Apenas texto puro"
846 878  
... ... @@ -868,11 +900,11 @@ msgstr &quot;&quot;
868 900 msgid "Primary space"
869 901 msgstr "Primary space"
870 902  
871   -#: src/terminal/actions/table.c:301
  903 +#: src/terminal/actions/table.c:282
872 904 msgid "Print"
873 905 msgstr "Imprimir"
874 906  
875   -#: src/terminal/actions/table.c:334
  907 +#: src/terminal/actions/table.c:315
876 908 msgid "Print Copy"
877 909 msgstr "Imprimir cópia"
878 910  
... ... @@ -884,19 +916,19 @@ msgstr &quot;Operação de impressão falhou&quot;
884 916 msgid "Print operation has failed"
885 917 msgstr "Operação de impressão falhou"
886 918  
887   -#: src/terminal/actions/table.c:312
  919 +#: src/terminal/actions/table.c:293
888 920 msgid "Print screen"
889 921 msgstr "Imprimir tela"
890 922  
891   -#: src/terminal/actions/table.c:302
  923 +#: src/terminal/actions/table.c:283
892 924 msgid "Print screen or selection"
893 925 msgstr "Imprimir tela ou seleção"
894 926  
895   -#: src/terminal/actions/table.c:323
  927 +#: src/terminal/actions/table.c:304
896 928 msgid "Print selected"
897 929 msgstr "Imprimir seleção"
898 930  
899   -#: src/terminal/actions/table.c:324
  931 +#: src/terminal/actions/table.c:305
900 932 msgid "Print selected area"
901 933 msgstr "Imprimir área selecionada"
902 934  
... ... @@ -904,7 +936,7 @@ msgstr &quot;Imprimir área selecionada&quot;
904 936 msgid "Print selection box"
905 937 msgstr "Imprimir marca de seleção"
906 938  
907   -#: src/terminal/actions/table.c:313
  939 +#: src/terminal/actions/table.c:294
908 940 msgid "Print the entire screen"
909 941 msgstr "Imprimir toda a tela"
910 942  
... ... @@ -928,7 +960,7 @@ msgstr &quot;Receber arquivo&quot;
928 960 msgid "Receive text file"
929 961 msgstr "Receber arquivo texto"
930 962  
931   -#: src/filetransfer/v3270ftprogress.c:747 src/dialogs/transfer.c:124
  963 +#: src/filetransfer/v3270ftprogress.c:747 src/dialogs/transfer.c:125
932 964 msgid "Receiving file"
933 965 msgstr "Recebendo arquivo"
934 966  
... ... @@ -936,7 +968,7 @@ msgstr &quot;Recebendo arquivo&quot;
936 968 msgid "Record Length"
937 969 msgstr "Comprimento de registro:"
938 970  
939   -#: src/filetransfer/v3270ft.c:340 src/filetransfer/settings.c:519
  971 +#: src/filetransfer/settings.c:519 src/filetransfer/v3270ft.c:341
940 972 msgid "Record format"
941 973 msgstr "Formato de registro"
942 974  
... ... @@ -965,33 +997,33 @@ msgstr &quot;Arquivo remoto:&quot;
965 997 msgid "Remote:"
966 998 msgstr "Remoto:"
967 999  
968   -#: src/filetransfer/v3270ft.c:395
  1000 +#: src/filetransfer/v3270ft.c:396
969 1001 msgid "Remove selected file from the transfer queue"
970 1002 msgstr "Remove arquivo selecionado da fila de transferência"
971 1003  
972   -#: src/terminal/actions/table.c:72
  1004 +#: src/terminal/actions/table.c:54
973 1005 msgid "Replace current clipboard contents with the selected area"
974 1006 msgstr "Substituí conteúdo da área de transferência com a seleção"
975 1007  
976   -#: src/terminal/actions/table.c:81
  1008 +#: src/terminal/actions/table.c:74
977 1009 msgid ""
978 1010 "Replace current clipboard contents with the selected area in HTML format"
979 1011 msgstr ""
980 1012 "Substituí conteúdo da área de transferência com o conteúdo da área "
981 1013 "selecionada em formato HTML"
982 1014  
983   -#: src/terminal/actions/table.c:90
  1015 +#: src/terminal/actions/table.c:83
984 1016 msgid ""
985 1017 "Replace current clipboard contents with the selected area in image format"
986 1018 msgstr ""
987 1019 "Substituí conteúdo da área de transferência com uma imagem da área "
988 1020 "selecionada"
989 1021  
990   -#: src/filetransfer/transfer.c:83
  1022 +#: src/filetransfer/transfer.c:84
991 1023 msgid "Retry"
992 1024 msgstr "Repetir"
993 1025  
994   -#: src/dialogs/security.c:143
  1026 +#: src/dialogs/security.c:144
995 1027 msgid "Revocation list"
996 1028 msgstr "Lista de revogados"
997 1029  
... ... @@ -1007,49 +1039,49 @@ msgstr &quot;&quot;
1007 1039 msgid "SSL/TLS"
1008 1040 msgstr "SSL/TLS"
1009 1041  
1010   -#: src/dialogs/settings/clipboard.c:318 src/dialogs/settings/clipboard.c:438
  1042 +#: src/dialogs/settings/clipboard.c:329 src/dialogs/settings/clipboard.c:450
1011 1043 msgid "Same of the screen"
1012 1044 msgstr "Igual ao terminal"
1013 1045  
1014   -#: src/terminal/actions/table.c:254 src/filetransfer/v3270ft.c:215
1015   -#: src/filetransfer/activitylist.c:451 src/trace/trace.c:499
1016   -#: src/dialogs/transfer.c:69
  1046 +#: src/terminal/actions/table.c:235 src/filetransfer/activitylist.c:451
  1047 +#: src/filetransfer/v3270ft.c:216 src/trace/trace.c:498
  1048 +#: src/dialogs/transfer.c:70
1017 1049 msgid "Save"
1018 1050 msgstr "Salvar"
1019 1051  
1020   -#: src/terminal/actions/table.c:288
  1052 +#: src/terminal/actions/table.c:269
1021 1053 msgid "Save Copy"
1022 1054 msgstr "Salvar cópia"
1023 1055  
1024   -#: src/trace/tracewindow.c:124
  1056 +#: src/trace/tracewindow.c:125
1025 1057 msgid "Save _As"
1026 1058 msgstr "Salvar _Como"
1027 1059  
1028   -#: src/terminal/actions/table.c:264
  1060 +#: src/terminal/actions/table.c:245
1029 1061 msgid "Save all"
1030 1062 msgstr "Salvar tela"
1031 1063  
1032   -#: src/terminal/actions/table.c:286 src/dialogs/save/save.c:363
  1064 +#: src/terminal/actions/table.c:267 src/dialogs/save/save.c:363
1033 1065 msgid "Save copy"
1034 1066 msgstr "Salvar cópia"
1035 1067  
1036   -#: src/filetransfer/v3270ft.c:214 src/filetransfer/activitylist.c:450
  1068 +#: src/filetransfer/activitylist.c:450 src/filetransfer/v3270ft.c:215
1037 1069 msgid "Save queue to file"
1038 1070 msgstr "Salvar a fila para um arquivo"
1039 1071  
1040   -#: src/terminal/actions/table.c:266
  1072 +#: src/terminal/actions/table.c:247
1041 1073 msgid "Save screen"
1042 1074 msgstr "Salvar tela"
1043 1075  
1044   -#: src/terminal/actions/table.c:255
  1076 +#: src/terminal/actions/table.c:236
1045 1077 msgid "Save screen or selection"
1046 1078 msgstr "Salvar tela ou seleção"
1047 1079  
1048   -#: src/terminal/actions/table.c:275
  1080 +#: src/terminal/actions/table.c:256
1049 1081 msgid "Save selected"
1050 1082 msgstr "Salvar seleção"
1051 1083  
1052   -#: src/terminal/actions/table.c:277 src/dialogs/save/save.c:362
  1084 +#: src/terminal/actions/table.c:258 src/dialogs/save/save.c:362
1053 1085 msgid "Save selected area"
1054 1086 msgstr "Salvar área selecionada"
1055 1087  
... ... @@ -1057,35 +1089,35 @@ msgstr &quot;Salvar área selecionada&quot;
1057 1089 msgid "Save terminal contents"
1058 1090 msgstr "Salvar conteúdo da tela"
1059 1091  
1060   -#: src/trace/trace.c:498
  1092 +#: src/trace/trace.c:497
1061 1093 msgid "Save trace to file"
1062 1094 msgstr "Salvar trace para arquivo"
1063 1095  
1064   -#: src/dialogs/transfer.c:68
  1096 +#: src/dialogs/transfer.c:69
1065 1097 msgid "Save transfer activity to file"
1066 1098 msgstr "Salvar atividade de transferência para arquivo"
1067 1099  
1068   -#: src/dialogs/transfer.c:187
  1100 +#: src/dialogs/transfer.c:188
1069 1101 msgid "Save transfer information to file"
1070 1102 msgstr "Salvar informações da transferência para arquivo"
1071 1103  
1072   -#: src/dialogs/print/settingsdialog.c:349
  1104 +#: src/dialogs/print/settingsdialog.c:351
1073 1105 msgid "Save transfer queue"
1074 1106 msgstr "Salvar fila de transferências"
1075 1107  
1076   -#: src/filetransfer/v3270ft.c:379
  1108 +#: src/filetransfer/v3270ft.c:380
1077 1109 msgid "Save transfer queue to an external XML file"
1078 1110 msgstr "Guarda fila de transferência num arquivo XML externo"
1079 1111  
1080   -#: src/dialogs/print/settingsdialog.c:353
  1112 +#: src/dialogs/print/settingsdialog.c:355
1081 1113 msgid "Save transfer queue to file"
1082 1114 msgstr "Salvar fila de transferências para arquivo"
1083 1115  
1084   -#: src/dialogs/settings/clipboard.c:386
  1116 +#: src/dialogs/settings/clipboard.c:398
1085 1117 msgid "Screen with terminal attributes"
1086 1118 msgstr "Completa incluindo atributos do terminal"
1087 1119  
1088   -#: src/terminal/actions/table.c:209
  1120 +#: src/terminal/actions/table.c:190
1089 1121 msgid ""
1090 1122 "Search clipboard for a similar screen, if found paste unprotected fields and "
1091 1123 "restore cursor position"
... ... @@ -1113,16 +1145,16 @@ msgstr &quot;Segurança&quot;
1113 1145 msgid "Security engine"
1114 1146 msgstr "Mecanismo de segurança"
1115 1147  
1116   -#: src/filetransfer/v3270ft.c:303 src/filetransfer/settings.c:209
1117   -#: src/dialogs/settings/host.c:367
  1148 +#: src/filetransfer/settings.c:209 src/filetransfer/v3270ft.c:304
  1149 +#: src/dialogs/settings/host.c:368
1118 1150 msgid "Select"
1119 1151 msgstr "Selecionar"
1120 1152  
1121   -#: src/dialogs/settings/host.c:452
  1153 +#: src/dialogs/settings/host.c:453
1122 1154 msgid "Select charset remap file"
1123 1155 msgstr "Selecionar arquivo com mapeamento personalizado"
1124 1156  
1125   -#: src/dialogs/settings/host.c:363
  1157 +#: src/dialogs/settings/host.c:364
1126 1158 msgid "Select custom charset mapping"
1127 1159 msgstr "Seleciona mapeamento de teclado personalizado"
1128 1160  
... ... @@ -1130,31 +1162,39 @@ msgstr &quot;Seleciona mapeamento de teclado personalizado&quot;
1130 1162 msgid "Select destination file"
1131 1163 msgstr "Selecionar arquivo destino"
1132 1164  
1133   -#: src/filetransfer/v3270ft.c:591 src/filetransfer/settings.c:467
  1165 +#: src/filetransfer/settings.c:467 src/filetransfer/v3270ft.c:592
1134 1166 #: src/dialogs/load.c:186
1135 1167 msgid "Select file"
1136 1168 msgstr "Selecionar arquivo"
1137 1169  
1138   -#: src/filetransfer/v3270ft.c:436 src/filetransfer/v3270ft.c:445
  1170 +#: src/filetransfer/v3270ft.c:437 src/filetransfer/v3270ft.c:446
1139 1171 msgid "Select first file"
1140 1172 msgstr "Selecionar primeiro arquivo"
1141 1173  
1142   -#: src/filetransfer/v3270ft.c:412 src/filetransfer/v3270ft.c:469
  1174 +#: src/filetransfer/v3270ft.c:413 src/filetransfer/v3270ft.c:470
1143 1175 msgid "Select last file"
1144 1176 msgstr "Selecionar último arquivo"
1145 1177  
1146   -#: src/filetransfer/v3270ft.c:302 src/filetransfer/settings.c:208
  1178 +#: src/filetransfer/settings.c:208 src/filetransfer/v3270ft.c:303
1147 1179 msgid "Select local file"
1148 1180 msgstr "Selecionar arquivo local"
1149 1181  
1150   -#: src/filetransfer/v3270ft.c:420 src/filetransfer/v3270ft.c:461
  1182 +#: src/filetransfer/v3270ft.c:421 src/filetransfer/v3270ft.c:462
1151 1183 msgid "Select next file"
1152 1184 msgstr "Selecionar próximo arquivo"
1153 1185  
1154   -#: src/filetransfer/v3270ft.c:428 src/filetransfer/v3270ft.c:453
  1186 +#: src/dialogs/settings/clipboard.c:251
  1187 +msgid "Select options"
  1188 +msgstr "Opçoes para seleção"
  1189 +
  1190 +#: src/filetransfer/v3270ft.c:429 src/filetransfer/v3270ft.c:454
1155 1191 msgid "Select previous file"
1156 1192 msgstr "Selecionar arquivo anterior"
1157 1193  
  1194 +#: src/terminal/actions/table.c:363
  1195 +msgid "Select terminal font"
  1196 +msgstr "Seleção da fonte do terminal"
  1197 +
1158 1198 #: src/dialogs/settings/colors.c:177
1159 1199 msgid "Selection background"
1160 1200 msgstr "Fundo da seleção"
... ... @@ -1163,6 +1203,10 @@ msgstr &quot;Fundo da seleção&quot;
1163 1203 msgid "Selection foreground"
1164 1204 msgstr "Frente da seleção"
1165 1205  
  1206 +#: src/terminal/actions/table.c:353
  1207 +msgid "Selection settings"
  1208 +msgstr "Configurar seleção"
  1209 +
1166 1210 #: src/filetransfer/tables.c:130
1167 1211 msgid "Send file"
1168 1212 msgstr "Enviar arquivo"
... ... @@ -1171,7 +1215,7 @@ msgstr &quot;Enviar arquivo&quot;
1171 1215 msgid "Send text file"
1172 1216 msgstr "Enviar arquivo texto"
1173 1217  
1174   -#: src/filetransfer/v3270ftprogress.c:747 src/dialogs/transfer.c:124
  1218 +#: src/filetransfer/v3270ftprogress.c:747 src/dialogs/transfer.c:125
1175 1219 msgid "Sending file"
1176 1220 msgstr "Enviando arquivo"
1177 1221  
... ... @@ -1179,27 +1223,27 @@ msgstr &quot;Enviando arquivo&quot;
1179 1223 msgid "Service/Port"
1180 1224 msgstr "Serviço/Porta"
1181 1225  
1182   -#: src/terminal/actions/table.c:241
  1226 +#: src/terminal/actions/table.c:222
1183 1227 msgid "Set the font to the best size for window"
1184 1228 msgstr "Ajusta a fonte para o melhor tamanho"
1185 1229  
1186   -#: src/terminal/actions.c:72
  1230 +#: src/terminal/actions.c:73
1187 1231 msgid "Setup host properties"
1188 1232 msgstr "Configurar host"
1189 1233  
1190   -#: src/filetransfer/transfer.c:86
  1234 +#: src/filetransfer/transfer.c:87
1191 1235 msgid "Skip"
1192 1236 msgstr "Skip"
1193 1237  
1194   -#: src/filetransfer/transfer.c:87
  1238 +#: src/filetransfer/transfer.c:88
1195 1239 msgid "Skip this transfer, keep the file on queue."
1196 1240 msgstr "Skip this transfer, keep the file on queue."
1197 1241  
1198   -#: src/dialogs/settings/clipboard.c:163
  1242 +#: src/dialogs/settings/clipboard.c:154
1199 1243 msgid "Smart copy"
1200 1244 msgstr "Cópia inteligente"
1201 1245  
1202   -#: src/filetransfer/v3270ft.c:341 src/filetransfer/settings.c:544
  1246 +#: src/filetransfer/settings.c:544 src/filetransfer/v3270ft.c:342
1203 1247 msgid "Space allocation units"
1204 1248 msgstr "Unidades de alocação de espaço"
1205 1249  
... ... @@ -1247,11 +1291,11 @@ msgstr &quot;&quot;
1247 1291 msgid "Speed:"
1248 1292 msgstr "Velocidade:"
1249 1293  
1250   -#: src/filetransfer/v3270ft.c:403
  1294 +#: src/filetransfer/v3270ft.c:404
1251 1295 msgid "Start file transfer"
1252 1296 msgstr "Iniciar transferência de arquivo"
1253 1297  
1254   -#: src/dialogs/print/settingsdialog.c:435
  1298 +#: src/dialogs/print/settingsdialog.c:437
1255 1299 msgid "Start transfer"
1256 1300 msgstr "Iniciar transferência"
1257 1301  
... ... @@ -1259,7 +1303,7 @@ msgstr &quot;Iniciar transferência&quot;
1259 1303 msgid "Starting"
1260 1304 msgstr "Iniciando"
1261 1305  
1262   -#: src/filetransfer/worker.c:314 src/dialogs/transfer.c:140
  1306 +#: src/filetransfer/worker.c:314 src/dialogs/transfer.c:141
1263 1307 msgid "Starting transfer"
1264 1308 msgstr "Iniciando transferência"
1265 1309  
... ... @@ -1271,27 +1315,27 @@ msgstr &quot;Situação&quot;
1271 1315 msgid "State Type"
1272 1316 msgstr "Tipo de situação"
1273 1317  
1274   -#: src/terminal/properties/init.c:162
  1318 +#: src/terminal/properties/init.c:152
1275 1319 msgid "State of the dynamic font spacing"
1276 1320 msgstr "Estado do espaçamento dinâmico"
1277 1321  
1278   -#: src/dialogs/settings/accelerator.c:176
  1322 +#: src/dialogs/settings/accelerator.c:175
1279 1323 msgid "Summary"
1280 1324 msgstr "Sumário"
1281 1325  
1282   -#: src/dialogs/settings/host.c:124
  1326 +#: src/dialogs/settings/host.c:125
1283 1327 msgid "System _type"
1284 1328 msgstr "_Tipo de servidor"
1285 1329  
1286   -#: src/dialogs/settings/host.c:166
  1330 +#: src/dialogs/settings/host.c:167
1287 1331 msgid "System default"
1288 1332 msgstr "Padrão do sistema"
1289 1333  
1290   -#: src/dialogs/settings/host.c:376
  1334 +#: src/dialogs/settings/host.c:377
1291 1335 msgid "TN3270 Custom charset"
1292 1336 msgstr "Código de página TN3270 personalizado"
1293 1337  
1294   -#: src/dialogs/settings/host.c:440
  1338 +#: src/dialogs/settings/host.c:441
1295 1339 msgid "TN3270 Emulation settings"
1296 1340 msgstr "Configuração da emulação TN3270"
1297 1341  
... ... @@ -1299,16 +1343,16 @@ msgstr &quot;Configuração da emulação TN3270&quot;
1299 1343 msgid "TN3270 Host URL"
1300 1344 msgstr "URL do servidor TN3270"
1301 1345  
1302   -#: src/terminal/properties/init.c:97
  1346 +#: src/terminal/properties/init.c:87
1303 1347 msgid "TN3270 Session name"
1304 1348 msgstr "Nome da sessão TN3270"
1305 1349  
1306   -#: src/dialogs/settings/colors.c:148 src/dialogs/settings/colors.c:300
1307   -#: src/dialogs/settings/colors.c:379
  1350 +#: src/terminal/actions/table.c:345 src/dialogs/settings/colors.c:148
  1351 +#: src/dialogs/settings/colors.c:300 src/dialogs/settings/colors.c:379
1308 1352 msgid "Terminal colors"
1309 1353 msgstr "Cores do terminal"
1310 1354  
1311   -#: src/dialogs/font/chooser.c:349
  1355 +#: src/dialogs/font/chooser.c:339
1312 1356 msgid "Terminal font"
1313 1357 msgstr "Fonte do terminal"
1314 1358  
... ... @@ -1326,7 +1370,7 @@ msgstr &quot;&quot;
1326 1370 "has been reached, or the maximum number of data blocks per file (16060) has "
1327 1371 "been reached."
1328 1372  
1329   -#: src/dialogs/settings/host.c:561
  1373 +#: src/dialogs/settings/host.c:562
1330 1374 msgid "The EBCDIC host character set. "
1331 1375 msgstr "A tabela de caracteres EBCDIC."
1332 1376  
... ... @@ -1374,7 +1418,7 @@ msgstr &quot;O host detectou um erro no arquivo durante a operação de recebimento.&quot;
1374 1418 msgid "The label for the action"
1375 1419 msgstr "A etiqueta da ação"
1376 1420  
1377   -#: src/dialogs/settings/host.c:181
  1421 +#: src/dialogs/settings/host.c:182
1378 1422 msgid "The model of 3270 display to be emulated"
1379 1423 msgstr "Modelo de tela 3270 a ser emulada"
1380 1424  
... ... @@ -1405,12 +1449,12 @@ msgstr &quot;Operação de impressão está em andamento&quot;
1405 1449 msgid "The print settings should be stored."
1406 1450 msgstr "Configuração de impressão deve ser armazenada"
1407 1451  
1408   -#: src/dialogs/settings/accelerator.c:309
  1452 +#: src/dialogs/settings/accelerator.c:308
1409 1453 #, c-format
1410 1454 msgid "The selected accelerator is in use by action <b>%s</b> (<b>%s</b>)"
1411 1455 msgstr "O atalho selecionado está em uso pela ação <b>%s</b> (<b>%s</b>)"
1412 1456  
1413   -#: src/dialogs/settings/accelerator.c:329
  1457 +#: src/dialogs/settings/accelerator.c:328
1414 1458 msgid "The selected accelerator is in use by the same action"
1415 1459 msgstr "O atalho selecionado está em uso na mesma ação"
1416 1460  
... ... @@ -1418,7 +1462,7 @@ msgstr &quot;O atalho selecionado está em uso na mesma ação&quot;
1418 1462 msgid "The state the action is in"
1419 1463 msgstr "A situação da ação está em"
1420 1464  
1421   -#: src/terminal/properties/init.c:208
  1465 +#: src/terminal/properties/init.c:214
1422 1466 msgid "The terminal colors"
1423 1467 msgstr "As cores do terminal"
1424 1468  
... ... @@ -1438,7 +1482,7 @@ msgstr &quot;The type of the state kept by the action&quot;
1438 1482 msgid "There is not enough space available for data on the host."
1439 1483 msgstr "Não existe espaço suficiente no host para os dados."
1440 1484  
1441   -#: src/dialogs/security.c:192
  1485 +#: src/dialogs/security.c:193
1442 1486 msgid "There's no security information in the session"
1443 1487 msgstr "Não existe informação de segurança na sessão"
1444 1488  
... ... @@ -1462,7 +1506,7 @@ msgstr &quot;Total:&quot;
1462 1506 msgid "Trace"
1463 1507 msgstr "Trace"
1464 1508  
1465   -#: src/terminal/properties/init.c:193
  1509 +#: src/terminal/properties/init.c:199
1466 1510 msgid "Trace window"
1467 1511 msgstr "Janela de trace"
1468 1512  
... ... @@ -1470,7 +1514,7 @@ msgstr &quot;Janela de trace&quot;
1470 1514 msgid "Tracks"
1471 1515 msgstr "Trilhas"
1472 1516  
1473   -#: src/filetransfer/worker.c:576 src/filetransfer/v3270ftprogress.c:729
  1517 +#: src/filetransfer/v3270ftprogress.c:729 src/filetransfer/worker.c:576
1474 1518 msgid "Transfer failed"
1475 1519 msgstr "Transferência falhou"
1476 1520  
... ... @@ -1478,13 +1522,13 @@ msgstr &quot;Transferência falhou&quot;
1478 1522 msgid "Transfer operation has timed out"
1479 1523 msgstr "Operação de transferência esgotou o tempo de espera"
1480 1524  
1481   -#: src/filetransfer/v3270ft.c:339 src/filetransfer/settings.c:492
  1525 +#: src/filetransfer/settings.c:492 src/filetransfer/v3270ft.c:340
1482 1526 msgid "Transfer options"
1483 1527 msgstr "Opções de transferência"
1484 1528  
1485   -#: src/dialogs/print/settingsdialog.c:379
1486   -#: src/dialogs/print/settingsdialog.c:398
1487   -#: src/dialogs/print/settingsdialog.c:417
  1529 +#: src/dialogs/print/settingsdialog.c:381
  1530 +#: src/dialogs/print/settingsdialog.c:400
  1531 +#: src/dialogs/print/settingsdialog.c:419
1488 1532 msgid "Transfer queue"
1489 1533 msgstr "Fila de transferências"
1490 1534  
... ... @@ -1492,15 +1536,15 @@ msgstr &quot;Fila de transferências&quot;
1492 1536 msgid "Transfer speed"
1493 1537 msgstr "Velocidade de transferência"
1494 1538  
1495   -#: src/terminal/properties/init.c:241
  1539 +#: src/terminal/properties/init.c:247
1496 1540 msgid "True if the terminal has copy blocks"
1497 1541 msgstr "Verdadeiro se o terminal tiver blocos copiados"
1498 1542  
1499   -#: src/terminal/properties/init.c:256
  1543 +#: src/terminal/properties/init.c:262
1500 1544 msgid "True if the timer indicator is active"
1501 1545 msgstr "Verdadeiro se indicador de tempo estiver ativo"
1502 1546  
1503   -#: src/filetransfer/transfer.c:84
  1547 +#: src/filetransfer/transfer.c:85
1504 1548 msgid "Try again with the same file."
1505 1549 msgstr "Tente de novo com o mesmo arquivo."
1506 1550  
... ... @@ -1512,15 +1556,16 @@ msgstr &quot;Turquesa&quot;
1512 1556 msgid "UTF-8"
1513 1557 msgstr "UTF-8"
1514 1558  
1515   -#: src/selection/linux/paste.c:116
1516   -msgid "Unable to paste formatted data."
  1559 +#: src/selection/windows/paste.c:115
  1560 +#, fuzzy
  1561 +msgid "Unable to paste formatted data"
1517 1562 msgstr "Incapaz de colar dados formatados."
1518 1563  
1519 1564 #: src/filetransfer/tables.c:92
1520 1565 msgid "Undefined"
1521 1566 msgstr "Indefinido"
1522 1567  
1523   -#: src/terminal/callbacks.c:472
  1568 +#: src/terminal/callbacks.c:498
1524 1569 #, c-format
1525 1570 msgid "Unexpected callback table, the release %s of lib%s is invalid"
1526 1571 msgstr "Tabela de callbacks inesperada, a revisão %s da lib%s é inválida"
... ... @@ -1544,12 +1589,16 @@ msgstr &quot;Estado inesperado %d na operação de impressão&quot;
1544 1589 msgid "Unsecure"
1545 1590 msgstr "Insegura"
1546 1591  
  1592 +#: src/dialogs/windows/select.c:169
  1593 +msgid "Untitled document"
  1594 +msgstr "Documento sem título"
  1595 +
1547 1596 #: src/filetransfer/tables.c:75
1548 1597 msgid "Use host default record format."
1549 1598 msgstr "Utilizar o formato de registro padrão do servidor."
1550 1599  
1551 1600 # Tradução copiada do libre-office
1552   -#: src/dialogs/settings/clipboard.c:143
  1601 +#: src/dialogs/settings/clipboard.c:134
1553 1602 msgid "Use non-breaking Spaces"
1554 1603 msgstr "Usar espaço inseparável"
1555 1604  
... ... @@ -1561,11 +1610,15 @@ msgstr &quot;Variável&quot;
1561 1610 msgid "Western Europe (ISO 8859-1)"
1562 1611 msgstr "Europa ocidental (ISO 8859-1)"
1563 1612  
1564   -#: src/dialogs/settings/clipboard.c:174
  1613 +#: src/dialogs/settings/clipboard.c:175
  1614 +msgid "When set URLs selected with double click will be opened"
  1615 +msgstr "Quando ativo URLs selecionadas com duplo clique serão abertas."
  1616 +
  1617 +#: src/dialogs/settings/clipboard.c:165
1565 1618 msgid "When set allow image formats on clipboard"
1566 1619 msgstr "Quando ativo permite imagens na área de transferência"
1567 1620  
1568   -#: src/dialogs/settings/clipboard.c:154
  1621 +#: src/dialogs/settings/clipboard.c:145
1569 1622 msgid ""
1570 1623 "When set search clipboard for a similar screen, if found paste unprotected "
1571 1624 "fields and restore cursor position"
... ... @@ -1573,7 +1626,7 @@ msgstr &quot;&quot;
1573 1626 "Quando ativo pesquisa a área de transferência por uma tela similar, se "
1574 1627 "encontrar cola os campos desprotegidos e restaura a posição do cursor"
1575 1628  
1576   -#: src/dialogs/settings/clipboard.c:164
  1629 +#: src/dialogs/settings/clipboard.c:155
1577 1630 msgid ""
1578 1631 "When set the first copy operation after the selection will set the clipboard "
1579 1632 "contents and the next ones will append"
... ... @@ -1582,7 +1635,7 @@ msgstr &quot;&quot;
1582 1635 "conteúdo da área de transferência enquanto as operações subsequentes "
1583 1636 "adicionam conteúdo"
1584 1637  
1585   -#: src/dialogs/settings/clipboard.c:144
  1638 +#: src/dialogs/settings/clipboard.c:135
1586 1639 msgid ""
1587 1640 "When set the terminal spaces are exported as non-breaking spaces to prevent "
1588 1641 "line breaks"
... ... @@ -1643,7 +1696,7 @@ msgstr &quot;X Sistema&quot;
1643 1696 msgid "X Wait"
1644 1697 msgstr "X Aguarde"
1645 1698  
1646   -#: src/terminal/properties/init.c:146
  1699 +#: src/terminal/properties/init.c:136
1647 1700 msgid "XML file with remap table"
1648 1701 msgstr "Arquivo XML com a tabela para remapeamento de caracteres"
1649 1702  
... ... @@ -1651,7 +1704,7 @@ msgstr &quot;Arquivo XML com a tabela para remapeamento de caracteres&quot;
1651 1704 msgid "Yellow"
1652 1705 msgstr "Amarelo"
1653 1706  
1654   -#: src/dialogs/print/settingsdialog.c:241
  1707 +#: src/dialogs/print/settingsdialog.c:243
1655 1708 msgid "You can't add more than one acitivity with the same files."
1656 1709 msgstr "Você não pode adicionar mais de uma operação com os mesmos arquivos"
1657 1710  
... ... @@ -1730,11 +1783,11 @@ msgstr &quot;&quot;
1730 1783 msgid "You specified an option that is invalid."
1731 1784 msgstr "Você especificou uma opção inválida."
1732 1785  
1733   -#: src/terminal/actions/table.c:219
  1786 +#: src/terminal/actions/table.c:200
1734 1787 msgid "Zoom in"
1735 1788 msgstr "Ampliar"
1736 1789  
1737   -#: src/terminal/actions/table.c:229
  1790 +#: src/terminal/actions/table.c:210
1738 1791 msgid "Zoom out"
1739 1792 msgstr "Reduzir"
1740 1793  
... ... @@ -1742,29 +1795,29 @@ msgstr &quot;Reduzir&quot;
1742 1795 msgid "_ASCII text"
1743 1796 msgstr "Texto _ASCII"
1744 1797  
1745   -#: src/dialogs/settings/dialog.c:213
  1798 +#: src/dialogs/settings/dialog.c:204
1746 1799 msgid "_Apply"
1747 1800 msgstr "_Aplicar"
1748 1801  
1749   -#: src/selection/linux/paste.c:85 src/dialogs/popups.c:179
1750   -#: src/dialogs/load.c:214 src/dialogs/linux/select.c:51
1751   -#: src/dialogs/linux/select.c:77 src/dialogs/print/settingsdialog.c:410
1752   -#: src/dialogs/print/settingsdialog.c:429 src/dialogs/save/save.c:341
1753   -#: src/dialogs/settings/dialog.c:212
  1802 +#: src/selection/windows/paste.c:83 src/selection/windows/paste.c:123
  1803 +#: src/dialogs/load.c:214 src/dialogs/popups.c:192
  1804 +#: src/dialogs/windows/select.c:158 src/dialogs/print/settingsdialog.c:412
  1805 +#: src/dialogs/print/settingsdialog.c:431 src/dialogs/save/save.c:341
  1806 +#: src/dialogs/settings/dialog.c:203
1754 1807 msgid "_Cancel"
1755 1808 msgstr "_Cancelar"
1756 1809  
1757   -#: src/dialogs/settings/host.c:560
  1810 +#: src/dialogs/settings/host.c:561
1758 1811 msgid "_Charset"
1759 1812 msgstr "Tabela de _Caracteres"
1760 1813  
1761   -#: src/trace/tracewindow.c:125 src/dialogs/transfer.c:159
1762   -#: src/dialogs/transfer.c:179 src/dialogs/security.c:233
1763   -#: src/dialogs/popups.c:101
  1814 +#: src/trace/tracewindow.c:126 src/dialogs/popups.c:106
  1815 +#: src/dialogs/security.c:234 src/dialogs/transfer.c:160
  1816 +#: src/dialogs/transfer.c:180
1764 1817 msgid "_Close"
1765 1818 msgstr "_Close"
1766 1819  
1767   -#: src/dialogs/settings/host.c:152
  1820 +#: src/dialogs/settings/host.c:153
1768 1821 msgid "_Color table"
1769 1822 msgstr "_Tabela de cores"
1770 1823  
... ... @@ -1772,7 +1825,7 @@ msgstr &quot;_Tabela de cores&quot;
1772 1825 msgid "_Continue"
1773 1826 msgstr "_Continuar"
1774 1827  
1775   -#: src/trace/tracewindow.c:117
  1828 +#: src/trace/tracewindow.c:118
1776 1829 msgid "_File"
1777 1830 msgstr "_Arquivo"
1778 1831  
... ... @@ -1788,16 +1841,16 @@ msgstr &quot;_Fonte:&quot;
1788 1841 msgid "_Load"
1789 1842 msgstr "_Carregar"
1790 1843  
1791   -#: src/filetransfer/v3270ft.c:334
  1844 +#: src/filetransfer/v3270ft.c:335
1792 1845 msgid "_Local file"
1793 1846 msgstr "Arquivo _local:"
1794 1847  
1795   -#: src/dialogs/settings/host.c:180
  1848 +#: src/dialogs/settings/host.c:181
1796 1849 msgid "_Model"
1797 1850 msgstr "_Modelo"
1798 1851  
1799   -#: src/dialogs/popups.c:83 src/dialogs/popups.c:89 src/dialogs/popups.c:95
1800   -#: src/dialogs/popups.c:107
  1852 +#: src/dialogs/popups.c:88 src/dialogs/popups.c:94 src/dialogs/popups.c:100
  1853 +#: src/dialogs/popups.c:112
1801 1854 msgid "_Ok"
1802 1855 msgstr "_Ok"
1803 1856  
... ... @@ -1805,19 +1858,19 @@ msgstr &quot;_Ok&quot;
1805 1858 msgid "_Open"
1806 1859 msgstr "_Abrir"
1807 1860  
1808   -#: src/filetransfer/v3270ft.c:333
  1861 +#: src/filetransfer/v3270ft.c:334
1809 1862 msgid "_Operation"
1810 1863 msgstr "_Operação:"
1811 1864  
1812   -#: src/selection/linux/paste.c:86 src/selection/linux/paste.c:118
  1865 +#: src/selection/windows/paste.c:84 src/selection/windows/paste.c:124
1813 1866 msgid "_Paste as text"
1814 1867 msgstr "_Colar como texto"
1815 1868  
1816   -#: src/filetransfer/v3270ft.c:335
  1869 +#: src/filetransfer/v3270ft.c:336
1817 1870 msgid "_Remote file"
1818 1871 msgstr "Arquivo _remoto:"
1819 1872  
1820   -#: src/trace/tracewindow.c:123 src/dialogs/save/save.c:342
  1873 +#: src/trace/tracewindow.c:124 src/dialogs/save/save.c:342
1821 1874 #: src/tools/entry.c:168
1822 1875 msgid "_Save"
1823 1876 msgstr "_Salvar"
... ... @@ -1826,7 +1879,7 @@ msgstr &quot;_Salvar&quot;
1826 1879 msgid "_Text file"
1827 1880 msgstr "Arquivo _texto"
1828 1881  
1829   -#: src/terminal/actions/table.c:230
  1882 +#: src/terminal/actions/table.c:211
1830 1883 msgid "decrease the font size"
1831 1884 msgstr "Diminui o tamanho da fonte"
1832 1885  
... ... @@ -2366,6 +2419,9 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
2366 2419 #~ msgid "Click to save file"
2367 2420 #~ msgstr "Clique para salvar arquivo"
2368 2421  
  2422 +#~ msgid "Clipboard properties"
  2423 +#~ msgstr "Configuração da área de transferência"
  2424 +
2369 2425 #~ msgid "Color setup"
2370 2426 #~ msgstr "Configuração de cores"
2371 2427  
... ... @@ -2983,6 +3039,9 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
2983 3039 #~ msgid "Non zero if the host is TSO."
2984 3040 #~ msgstr "Diferente de zero se o host é TSO"
2985 3041  
  3042 +#~ msgid "None of the screens in the clipboard match with the current one."
  3043 +#~ msgstr "Nenhuma das telas da área de transferência corresponde à atual."
  3044 +
2986 3045 #~ msgid "Not available"
2987 3046 #~ msgstr "Não disponível"
2988 3047  
... ... @@ -3419,15 +3478,16 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
3419 3478 #~ msgid "Select file to send"
3420 3479 #~ msgstr "Selecione arquivo a enviar"
3421 3480  
3422   -#~ msgid "Select font"
3423   -#~ msgstr "Selecione fonte"
3424   -
3425 3481 #~ msgid "Select hostname"
3426 3482 #~ msgstr "Selecione host"
3427 3483  
3428 3484 #~ msgid "Select() failed when processing for events."
3429 3485 #~ msgstr "Select() falhou ao processar eventos."
3430 3486  
  3487 +#, fuzzy
  3488 +#~ msgid "Selection"
  3489 +#~ msgstr "Selecionar"
  3490 +
3431 3491 #~ msgid "Self signed certificate"
3432 3492 #~ msgstr "Certificado auto assinado"
3433 3493  
... ... @@ -4026,9 +4086,6 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
4026 4086 #~ msgid "Unsupported socks 4 proxy"
4027 4087 #~ msgstr "Unsupported socks 4 proxy"
4028 4088  
4029   -#~ msgid "Untitled document"
4030   -#~ msgstr "Documento sem título"
4031   -
4032 4089 #~ msgid "Uppercase only"
4033 4090 #~ msgstr "Apenas maiúsculas"
4034 4091  
... ...
mac/libv3270.modules 0 → 100644
... ... @@ -0,0 +1,24 @@
  1 +<?xml version="1.0"?>
  2 +<!DOCTYPE moduleset SYSTEM "moduleset.dtd">
  3 +<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
  4 +<moduleset>
  5 +
  6 + <include href="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/modulesets-stable/gtk-osx.modules" />
  7 + <include href="https://raw.githubusercontent.com/PerryWerneck/lib3270/macos/mac/lib3270.modules" />
  8 +
  9 + <repository type="git" name="github.com" href="git://github.com/"/>
  10 +
  11 + <autotools id="libv3270">
  12 + <branch repo="github.com" module="PerryWerneck/libv3270" revision="macos" />
  13 + <dependencies>
  14 + <dep package="meta-gtk-osx-bootstrap"/>
  15 + <dep package="glib"/>
  16 + <dep package="gtk+-3.0"/>
  17 + <!-- dep package="gtk-mac-integration"/ -->
  18 + <!-- dep package="adwaita-icon-theme"/ -->
  19 + <dep package="lib3270"/>
  20 + </dependencies>
  21 + </autotools>
  22 +
  23 +</moduleset>
  24 +
... ...
src/dialogs/colorscheme.c
... ... @@ -34,7 +34,7 @@
34 34 #include <v3270.h>
35 35 #include <lib3270/log.h>
36 36 #include <v3270/colorscheme.h>
37   - #include "../terminal/marshal.h"
  37 + #include <marshal/terminal.h>
38 38  
39 39 #define V3270_COLOR_BASE V3270_COLOR_GRAY+1
40 40  
... ...
src/dialogs/font/chooser.c
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
2   - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
3   - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
4   - * aplicativos mainframe. Registro no INPI sob o nome G3270.
5   - *
6   - * Copyright (C) <2008> <Banco do Brasil S.A.>
7   - *
8   - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
9   - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
10   - * Free Software Foundation.
11   - *
12   - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
13   - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
14   - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
15   - * obter mais detalhes.
16   - *
17   - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
18   - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como - e possui - linhas de código.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
22 5 *
23   - * Contatos:
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
24 10 *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 /**
... ...
src/dialogs/macos/select.c 0 → 100644
... ... @@ -0,0 +1,96 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob
  5 + * o nome G3270.
  6 + *
  7 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  8 + *
  9 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  10 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  11 + * Free Software Foundation.
  12 + *
  13 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  14 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  15 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  16 + * obter mais detalhes.
  17 + *
  18 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  19 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  20 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  21 + *
  22 + * Este programa está nomeado como - possui - linhas de código.
  23 + *
  24 + * Contatos:
  25 + *
  26 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  27 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  28 + *
  29 + */
  30 +
  31 +#include "../private.h"
  32 +#include <stdarg.h>
  33 +
  34 +/*--[ Implement ]------------------------------------------------------------------------------------*/
  35 +
  36 +gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename)
  37 +{
  38 + gchar *rc = NULL;
  39 +
  40 +#if GTK_CHECK_VERSION(3,20,0)
  41 +
  42 + debug("%s action=%d",__FUNCTION__,(int) action);
  43 +
  44 + GtkFileChooserNative *native =
  45 + gtk_file_chooser_native_new
  46 + (
  47 + title,
  48 + GTK_WINDOW(widget),
  49 + action,
  50 + button,
  51 + _( "_Cancel" )
  52 + );
  53 +
  54 +
  55 + // Setup filename
  56 + if(filename && *filename)
  57 + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(native),filename);
  58 +
  59 +
  60 + // Run dialog
  61 + if(gtk_native_dialog_run(GTK_NATIVE_DIALOG (native)) == GTK_RESPONSE_ACCEPT) {
  62 + rc = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(native));
  63 + }
  64 +
  65 + g_object_unref(native);
  66 +
  67 +#else
  68 +
  69 + debug("%s action=%d",__FUNCTION__,(int) action);
  70 +
  71 + GtkWidget * chooser =
  72 + gtk_file_chooser_dialog_new
  73 + (
  74 + title,
  75 + GTK_WINDOW(widget),
  76 + action,
  77 + _("_Cancel" ), GTK_RESPONSE_CANCEL,
  78 + button, GTK_RESPONSE_ACCEPT,
  79 + NULL
  80 + );
  81 +
  82 + if(filename && *filename)
  83 + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(chooser),filename);
  84 +
  85 + if(gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_ACCEPT) {
  86 + rc = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
  87 + }
  88 +
  89 + gtk_widget_destroy(chooser);
  90 +
  91 +#endif // GTK 3.20
  92 +
  93 + return rc;
  94 +
  95 +}
  96 +
... ...
src/dialogs/save/save.c
... ... @@ -179,7 +179,7 @@ static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_
179 179  
180 180 }
181 181  
182   - static void fileformat_changed(GtkComboBox *formats, GtkEntry *entry)
  182 + static void fileformat_changed(GtkComboBox *fmts, GtkEntry *entry)
183 183 {
184 184 const gchar * text = gtk_entry_get_text(entry);
185 185  
... ... @@ -191,7 +191,7 @@ static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_
191 191 return;
192 192  
193 193 extension++;
194   - const gchar * format = gtk_combo_box_get_active_id(formats);
  194 + const gchar * format = gtk_combo_box_get_active_id(fmts);
195 195 if(*format == '.')
196 196 format++;
197 197  
... ...
src/dialogs/settings/clipboard.c
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
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.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
16 5 *
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
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
20 10 *
21   - * Este programa está nomeado como - e possui - linhas de código.
22   - *
23   - * Contatos:
24   - *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 /**
... ... @@ -40,9 +30,10 @@
40 30 /*--[ Constants ]------------------------------------------------------------------------------------*/
41 31  
42 32 enum {
43   - COPY_SETTINGS,
44   - PASTE_SETTINGS,
45   - HTML_SETTINGS,
  33 + SELECT_OPTIONS,
  34 + COPY_OPTIONS,
  35 + PASTE_OPTIONS,
  36 + HTML_OPTIONS,
46 37  
47 38 GRID_COUNT
48 39 };
... ... @@ -52,7 +43,7 @@
52 43 .left = 1,
53 44 .top = 1,
54 45 .width = 1,
55   - .grid = COPY_SETTINGS,
  46 + .grid = SELECT_OPTIONS,
56 47 .id = LIB3270_TOGGLE_RECTANGLE_SELECT,
57 48 },
58 49  
... ... @@ -60,7 +51,7 @@
60 51 .left = 1,
61 52 .top = 2,
62 53 .width = 1,
63   - .grid = COPY_SETTINGS,
  54 + .grid = SELECT_OPTIONS,
64 55 .id = LIB3270_TOGGLE_KEEP_SELECTED,
65 56 },
66 57  
... ... @@ -68,7 +59,7 @@
68 59 .left = 0,
69 60 .top = 0,
70 61 .width = 1,
71   - .grid = PASTE_SETTINGS,
  62 + .grid = PASTE_OPTIONS,
72 63 .id = LIB3270_TOGGLE_MARGINED_PASTE,
73 64 },
74 65  
... ... @@ -76,7 +67,7 @@
76 67 .left = 0,
77 68 .top = 1,
78 69 .width = 1,
79   - .grid = PASTE_SETTINGS,
  70 + .grid = PASTE_OPTIONS,
80 71 .id = LIB3270_TOGGLE_SMART_PASTE,
81 72 }
82 73  
... ... @@ -85,7 +76,7 @@
85 76 static const struct ComboBoxDefinition combos[] = {
86 77  
87 78 {
88   - .grid = HTML_SETTINGS,
  79 + .grid = HTML_OPTIONS,
89 80 .left = 0,
90 81 .top = 0,
91 82 .width = 1,
... ... @@ -102,7 +93,7 @@
102 93 },
103 94  
104 95 {
105   - .grid = HTML_SETTINGS,
  96 + .grid = HTML_OPTIONS,
106 97 .left = 0,
107 98 .top = 1,
108 99 .width = 1,
... ... @@ -119,7 +110,7 @@
119 110 },
120 111  
121 112 {
122   - .grid = COPY_SETTINGS,
  113 + .grid = COPY_OPTIONS,
123 114 .left = 0,
124 115 .top = 0,
125 116 .width = 2,
... ... @@ -146,7 +137,7 @@
146 137 .top = 2,
147 138 .width = 1,
148 139 .height = 1,
149   - .grid = HTML_SETTINGS
  140 + .grid = HTML_OPTIONS
150 141 },
151 142  
152 143 {
... ... @@ -156,27 +147,37 @@
156 147 .top = 2,
157 148 .width = 1,
158 149 .height = 1,
159   - .grid = PASTE_SETTINGS
  150 + .grid = PASTE_OPTIONS
160 151 },
161 152  
162 153 {
163 154 .label = N_("Smart copy"),
164 155 .tooltip = N_("When set the first copy operation after the selection will set the clipboard contents and the next ones will append"),
165 156 .left = 1,
166   - .top = 4,
  157 + .top = 1,
167 158 .width = 1,
168 159 .height = 1,
169   - .grid = COPY_SETTINGS
  160 + .grid = COPY_OPTIONS
170 161 },
171 162  
172 163 {
173 164 .label = N_("Image copy"),
174 165 .tooltip = N_("When set allow image formats on clipboard"),
175 166 .left = 1,
  167 + .top = 2,
  168 + .width = 1,
  169 + .height = 1,
  170 + .grid = COPY_OPTIONS
  171 + },
  172 +
  173 + {
  174 + .label = N_("Detect http:// or https://"),
  175 + .tooltip = N_("When set URLs selected with double click will be opened"),
  176 + .left = 1,
176 177 .top = 3,
177 178 .width = 1,
178 179 .height = 1,
179   - .grid = COPY_SETTINGS
  180 + .grid = SELECT_OPTIONS
180 181 }
181 182  
182 183 };
... ... @@ -247,6 +248,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
247 248 // Create grids
248 249 {
249 250 static const gchar * labels[GRID_COUNT] = {
  251 + N_("Select options"),
250 252 N_("Copy options"),
251 253 N_("Paste options"),
252 254 N_("HTML options")
... ... @@ -258,23 +260,32 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
258 260 int width;
259 261 } positions[GRID_COUNT] = {
260 262 {
  263 + // SELECT_OPTIONS
261 264 .left = 0,
262 265 .top = 0,
263 266 .width = 1
264 267 },
265 268  
266 269 {
267   - .left = 1,
  270 + // COPY_OPTIONS
  271 + .left = 1,
268 272 .top = 0,
269 273 .width = 1
270 274 },
271 275  
272 276 {
  277 + // PASTE_OPTIONS
  278 + .left = 1,
  279 + .top = 1,
  280 + .width = 1
  281 + },
  282 +
  283 + {
  284 + // HTML_OPTIONS
273 285 .left = 0,
274 286 .top = 1,
275 287 .width = 1
276 288 }
277   -
278 289 };
279 290  
280 291 for(ix = 0; ix < G_N_ELEMENTS(labels); ix++) {
... ... @@ -334,6 +345,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
334 345  
335 346 }
336 347  
  348 +/*
337 349 // Load color schemes
338 350 #ifdef DEBUG
339 351 {
... ... @@ -379,7 +391,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
379 391 }
380 392 }
381 393 #endif // DEBUG
382   -
  394 +*/
383 395 // Copy format combo
384 396 static const gchar * copy_formats[] = {
385 397 N_("Plain text only"),
... ... @@ -416,7 +428,7 @@ GtkWidget * v3270_clipboard_settings_new() {
416 428  
417 429 V3270Settings * settings = GTK_V3270_SETTINGS(g_object_new(V3270ClipboardSettings_get_type(), NULL));
418 430  
419   - settings->title = _("Clipboard properties");
  431 + settings->title = _("Options for select, cut and paste actions");
420 432 settings->label = _("Clipboard");
421 433  
422 434 return GTK_WIDGET(settings);
... ... @@ -484,6 +496,7 @@ static void load(GtkWidget *w, GtkWidget *t) {
484 496 gtk_toggle_button_set_active(widget->input.checkboxes[1],(terminal->selection.options & V3270_SELECTION_SCREEN_PASTE) != 0);
485 497 gtk_toggle_button_set_active(widget->input.checkboxes[2],(terminal->selection.options & V3270_SELECTION_SMART_COPY) != 0);
486 498 gtk_toggle_button_set_active(widget->input.checkboxes[3],(terminal->selection.options & V3270_SELECTION_PIXBUFF) != 0);
  499 + gtk_toggle_button_set_active(widget->input.checkboxes[4],terminal->open_url != 0);
487 500  
488 501 //
489 502 // Set font combo-box
... ... @@ -577,6 +590,12 @@ static void apply(GtkWidget *w, GtkWidget *t) {
577 590 terminal->selection.options &= ~V3270_SELECTION_PIXBUFF;
578 591 }
579 592  
  593 + if(gtk_toggle_button_get_active(widget->input.checkboxes[4])) {
  594 + terminal->open_url = 1;
  595 + } else {
  596 + terminal->open_url = 0;
  597 + }
  598 +
580 599 // Get font settings
581 600 switch(get_active_id(widget,0)) {
582 601 case '0':
... ...
src/dialogs/settings/colors.c
... ... @@ -381,13 +381,3 @@ static void load(GtkWidget G_GNUC_UNUSED(*w), GtkWidget *terminal)
381 381  
382 382 return GTK_WIDGET(settings);
383 383 }
384   -
385   - LIB3270_EXPORT void v3270_edit_color_table(GtkWidget *terminal)
386   - {
387   - v3270_settings_popup_dialog(
388   - v3270_color_settings_new(),
389   - terminal,
390   - FALSE
391   - );
392   -
393   - }
... ...
src/dialogs/settings/url.c
... ... @@ -30,7 +30,7 @@
30 30 */
31 31  
32 32 #include "private.h"
33   - #include "marshal.h"
  33 + #include <marshal/dialogs.h>
34 34 #include <v3270/settings/url.h>
35 35 #include <ctype.h>
36 36  
... ...
src/dialogs/settings/widget.c
... ... @@ -28,7 +28,7 @@
28 28 */
29 29  
30 30 #include "../private.h"
31   - #include "../terminal/marshal.h"
  31 + #include <marshal/terminal.h>
32 32 #include <internals.h>
33 33 #include <v3270/settings.h>
34 34 #include <lib3270/log.h>
... ...
src/filetransfer/activitylist.c
... ... @@ -30,7 +30,7 @@
30 30 #include <internals.h>
31 31 #include <v3270/dialogs.h>
32 32 #include "private.h"
33   - #include "marshal.h"
  33 + #include <marshal/filetransfer.h>
34 34  
35 35 /*--[ Widget definition ]----------------------------------------------------------------------------*/
36 36  
... ...
src/filetransfer/settings.c
... ... @@ -30,7 +30,7 @@
30 30 #include <string.h>
31 31 #include <internals.h>
32 32 #include "private.h"
33   - #include "marshal.h"
  33 + #include <marshal/filetransfer.h>
34 34 #include <v3270/filetransfer.h>
35 35  
36 36 /*--[ Widget definition ]----------------------------------------------------------------------------*/
... ...
src/filetransfer/v3270ftprogress.c
... ... @@ -36,7 +36,7 @@
36 36 */
37 37  
38 38 #include "private.h"
39   - #include "marshal.h"
  39 + #include <marshal/filetransfer.h>
40 40 #include <internals.h>
41 41 #include <lib3270/filetransfer.h>
42 42  
... ...
src/filetransfer/worker.c
... ... @@ -30,7 +30,7 @@
30 30 #include <string.h>
31 31 #include <internals.h>
32 32 #include "private.h"
33   - #include "marshal.h"
  33 + #include <marshal/filetransfer.h>
34 34 #include <v3270/filetransfer.h>
35 35  
36 36 /*--[ Widget definition ]----------------------------------------------------------------------------*/
... ...
src/include/internals.h
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
2   - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
3   - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
4   - * aplicativos mainframe. Registro no INPI sob o nome G3270.
5   - *
6   - * Copyright (C) <2008> <Banco do Brasil S.A.>
7   - *
8   - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
9   - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
10   - * Free Software Foundation.
11   - *
12   - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
13   - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
14   - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
15   - * obter mais detalhes.
16   - *
17   - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
18   - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como - e possui - linhas de código.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
22 5 *
23   - * Contatos:
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
24 10 *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #ifndef V3270_INTERNALS_H_INCLUDED
... ... @@ -121,6 +111,7 @@
121 111 // Misc signals
122 112 //
123 113 V3270_SIGNAL_FIRE_ACTION, ///< @brief Fire action by name.
  114 + V3270_SIGNAL_OPEN_URL, ///< @brief An URL was selected.
124 115  
125 116 V3270_SIGNAL_LAST
126 117 };
... ...
src/include/terminal.h
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
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
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
20 5 *
21   - * Este programa está nomeado como - e possui - linhas de código.
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
22 10 *
23   - * Contatos:
24   - *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30   -#include <config.h>
31   -#include <internals.h>
32   -#include <v3270/selection.h>
33   -
34   -G_BEGIN_DECLS
  20 + #include <config.h>
  21 + #include <internals.h>
  22 + #include <v3270/selection.h>
35 23  
36   -/*
37   - /// @brief V3270 Properties saved to the configuration file.
38   - typedef enum
39   - {
40   - V3270_SETTING_URL,
41   - V3270_SETTING_FONT_FAMILY,
42   - V3270_SETTING_AUTO_DISCONNECT,
43   - V3270_SETTING_REMAP_FILE,
44   - V3270_SETTING_DYNAMIC_SPACING,
45   - V3270_SETTING_LU_NAMES,
46   - V3270_SETTING_MODEL_NUMBER,
47   - V3270_SETTING_OVERSIZE,
48   - V3270_SETTING_HOST_CHARSET,
49   - V3270_SETTING_UNLOCK_DELAY,
50   - V3270_SETTING_COLOR_TYPE,
51   - V3270_SETTING_HOST_TYPE,
52   - V3270_SETTING_CRL_PROTOCOL,
53   - V3270_SETTING_TERMINAL_COLORS,
54   - V3270_SETTING_SELECTION_OPTIONS,
55   -
56   - V3270_SETTING_COUNT ///< @brief Number of setting properties.
57   - } V3270_SETTING;
58   -
59   - G_GNUC_INTERNAL void v3270_notify_setting(GtkWidget *widget, V3270_SETTING id);
60   -*/
  24 + G_BEGIN_DECLS
61 25  
62 26 struct _v3270Class
63 27 {
... ... @@ -151,14 +115,15 @@ G_BEGIN_DECLS
151 115 GtkWidget parent;
152 116  
153 117 // flags
154   - int selecting : 1; /// @brief Selecting region
155   - int moving : 1; /// @brief Moving selected region
156   - int resizing : 1; /// @brief Resizing selected region
157   - int scaled_fonts : 1; /// @brief Use scaled fonts
158   - int drawing : 1; /// @brief Draw widget?
159   - int freeze : 1; /// @brief Truee when the "save settings" signal is disabled.
160   - int append : 1; /// @brief Next smart-copy operation will be append.
161   - int copying : 1; /// @brief Copy with center mouse button
  118 + unsigned int selecting : 1; ///< @brief Selecting region
  119 + unsigned int moving : 1; ///< @brief Moving selected region
  120 + unsigned int resizing : 1; ///< @brief Resizing selected region
  121 + unsigned int scaled_fonts : 1; ///< @brief Use scaled fonts
  122 + unsigned int drawing : 1; ///< @brief Draw widget?
  123 + unsigned int freeze : 1; ///< @brief True when the "save settings" signal is disabled.
  124 + unsigned int append : 1; ///< @brief Next smart-copy operation will be append.
  125 + unsigned int copying : 1; ///< @brief Copy with center mouse button
  126 + unsigned int open_url : 1; ///< @brief Emit 'open-url' signal when and http:// or https:// url is selected by 'word-select' action.
162 127  
163 128 /// @brief Action properties.
164 129 // GtkResponseType responses[V3270_TOGGLEABLE_DIALOG_CUSTOM];
... ... @@ -238,7 +203,7 @@ G_BEGIN_DECLS
238 203 // Blink
239 204 struct
240 205 {
241   - int show : 1; ///< @brief Show element?
  206 + unsigned int show : 1; ///< @brief Show element?
242 207 GSource * timer; ///< @brief Timer source.
243 208 } blink;
244 209  
... ...
src/include/v3270/colorscheme.h
... ... @@ -66,7 +66,6 @@
66 66 LIB3270_EXPORT void v3270_color_scheme_set_text(GtkWidget *widget, const gchar *colors);
67 67  
68 68 LIB3270_EXPORT GtkWidget * v3270_color_selection_new() G_GNUC_DEPRECATED;
69   - LIB3270_EXPORT void v3270_edit_color_table(GtkWidget *terminal);
70 69  
71 70 G_END_DECLS
72 71  
... ...
src/selection/macos/copy.c 0 → 100644
... ... @@ -0,0 +1,196 @@
  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 - 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 <clipboard.h>
  31 + #include <lib3270/selection.h>
  32 + #include <lib3270/toggle.h>
  33 +
  34 +/*--[ Implement ]------------------------------------------------------------------------------------*/
  35 +
  36 +void v3270_clipboard_clear(G_GNUC_UNUSED GtkClipboard *clipboard, G_GNUC_UNUSED GObject *obj)
  37 +{
  38 + v3270 * terminal = GTK_V3270(obj);
  39 +
  40 + if(!lib3270_get_toggle(terminal->host,LIB3270_TOGGLE_KEEP_SELECTED))
  41 + {
  42 + v3270_unselect(GTK_WIDGET(obj));
  43 + v3270_clear_selection(terminal);
  44 + }
  45 +
  46 +}
  47 +
  48 +void v3270_clipboard_get(G_GNUC_UNUSED GtkClipboard *clipboard, GtkSelectionData *selection, guint target, GObject *obj)
  49 +{
  50 + v3270 * terminal = GTK_V3270(obj);
  51 +
  52 + if(!terminal->selection.blocks)
  53 + {
  54 + return;
  55 + }
  56 +
  57 + switch(target)
  58 + {
  59 + case CLIPBOARD_TYPE_TEXT: // Get clipboard contents as text
  60 + {
  61 + g_autofree gchar *text = v3270_get_copy_as_text(terminal,"UTF-8");
  62 + gtk_selection_data_set_text(selection,text,-1);
  63 + }
  64 + break;
  65 +
  66 + case CLIPBOARD_TYPE_CSV:
  67 + {
  68 + g_autofree gchar *text = v3270_get_copy_as_table(terminal,";","UTF-8");
  69 + debug("Selection:\n%s",text);
  70 + gtk_selection_data_set(
  71 + selection,
  72 + gdk_atom_intern_static_string("text/csv"),
  73 + 8,
  74 + (guchar *) text,
  75 + strlen(text)
  76 + );
  77 + }
  78 + break;
  79 +
  80 + case CLIPBOARD_TYPE_HTML:
  81 + {
  82 + g_autofree gchar *text = v3270_get_copy_as_html(terminal,"UTF-8");
  83 + //debug("Selection:\n%s",text);
  84 + gtk_selection_data_set(
  85 + selection,
  86 + gdk_atom_intern_static_string("text/html"),
  87 + 8,
  88 + (guchar *) text,
  89 + strlen(text)
  90 + );
  91 + }
  92 + break;
  93 +
  94 + case CLIPBOARD_TYPE_V3270_FORMATTED:
  95 + {
  96 + g_autofree gchar *data = v3270_get_copy_as_data_block(terminal);
  97 + gtk_selection_data_set(
  98 + selection,
  99 + GTK_V3270_GET_CLASS(obj)->clipboard_formatted,
  100 + 8,
  101 + (guchar *) data,
  102 + ((struct SelectionHeader *) data)->length
  103 + );
  104 + }
  105 + break;
  106 +
  107 + case CLIPBOARD_TYPE_PIXBUFF:
  108 + {
  109 + GdkPixbuf * pixbuff = v3270_get_selection_as_pixbuf(terminal, terminal->selection.blocks, FALSE);
  110 +
  111 + debug("%s: pixbuff=%p (blocks=%p)",__FUNCTION__,pixbuff,terminal->selection.blocks);
  112 +
  113 + if(pixbuff)
  114 + {
  115 + gtk_selection_data_set_pixbuf(selection,pixbuff);
  116 + g_object_unref(pixbuff);
  117 + }
  118 + }
  119 + break;
  120 +
  121 + default:
  122 + g_warning("Unexpected clipboard type %d\n",target);
  123 + }
  124 +}
  125 +
  126 +void v3270_update_system_clipboard(GtkWidget *widget)
  127 +{
  128 + v3270 * terminal = GTK_V3270(widget);
  129 +
  130 + if(!terminal->selection.blocks)
  131 + {
  132 + // No clipboard data, return.
  133 + v3270_emit_copy_state(widget);
  134 + return;
  135 + }
  136 +
  137 + // Has clipboard data, inform system.
  138 + GtkClipboard * clipboard = gtk_widget_get_clipboard(widget,terminal->selection.target);
  139 +
  140 + // Create target list
  141 + //
  142 + // Reference: https://cpp.hotexamples.com/examples/-/-/g_list_insert_sorted/cpp-g_list_insert_sorted-function-examples.html
  143 + //
  144 + GtkTargetList * list = gtk_target_list_new(NULL,0);
  145 +
  146 + gtk_target_list_add_text_targets(list, CLIPBOARD_TYPE_TEXT);
  147 +
  148 + if((terminal->selection.options & V3270_SELECTION_PLAIN_TEXT) == 0)
  149 + {
  150 + static const GtkTargetEntry targets[] = {
  151 + { "text/csv", 0, CLIPBOARD_TYPE_CSV },
  152 + { "text/html", 0, CLIPBOARD_TYPE_HTML },
  153 + { "application/x-v3270-formatted", 0, CLIPBOARD_TYPE_V3270_FORMATTED },
  154 + };
  155 +
  156 + gtk_target_list_add_table(list, targets, G_N_ELEMENTS(targets));
  157 +
  158 + }
  159 +
  160 + if(terminal->selection.options & V3270_SELECTION_PIXBUFF)
  161 + {
  162 + gtk_target_list_add_image_targets(list,CLIPBOARD_TYPE_PIXBUFF,TRUE);
  163 + }
  164 +
  165 + int n_targets;
  166 + GtkTargetEntry * targets = gtk_target_table_new_from_list(list, &n_targets);
  167 +
  168 +#ifdef DEBUG
  169 + {
  170 + int ix;
  171 + for(ix = 0; ix < n_targets; ix++) {
  172 + debug("target(%d)=\"%s\"",ix,targets[ix].target);
  173 + }
  174 + }
  175 +#endif // DEBUG
  176 +
  177 + if(gtk_clipboard_set_with_owner(
  178 + clipboard,
  179 + targets,
  180 + n_targets,
  181 + (GtkClipboardGetFunc) v3270_clipboard_get,
  182 + (GtkClipboardClearFunc) v3270_clipboard_clear,
  183 + G_OBJECT(widget)
  184 + ))
  185 + {
  186 + gtk_clipboard_set_can_store(clipboard,targets,1);
  187 + }
  188 +
  189 + gtk_target_table_free(targets, n_targets);
  190 + gtk_target_list_unref(list);
  191 +
  192 + v3270_emit_copy_state(widget);
  193 +
  194 +}
  195 +
  196 +
... ...
src/selection/macos/paste.c 0 → 100644
... ... @@ -0,0 +1,219 @@
  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 selection.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 <clipboard.h>
  31 + #include <lib3270/toggle.h>
  32 + #include <v3270/dialogs.h>
  33 + #include <lib3270/popup.h>
  34 +
  35 +/*--[ Implement ]------------------------------------------------------------------------------------*/
  36 +
  37 +static void text_received(G_GNUC_UNUSED GtkClipboard *clipboard, const gchar *text, GtkWidget *widget)
  38 +{
  39 + v3270_input_text(widget,text,"UTF-8");
  40 +}
  41 +
  42 +static gboolean has_target(const GdkAtom atom, const GdkAtom *atoms, const gint n_atoms)
  43 +{
  44 + gint ix;
  45 +
  46 + for(ix = 0; ix < n_atoms; ix++)
  47 + {
  48 + if(atom == atoms[ix])
  49 + return TRUE;
  50 + }
  51 +
  52 + return FALSE;
  53 +}
  54 +
  55 +static void formatted_received(GtkClipboard *clipboard, GtkSelectionData *selection_data, GtkWidget *widget)
  56 +{
  57 + const struct SelectionHeader *selection = (const struct SelectionHeader *) gtk_selection_data_get_data(selection_data);
  58 +
  59 + v3270 * terminal = GTK_V3270(widget);
  60 +
  61 + debug(
  62 + "Received formatted data with %u bytes: Build=%u rows=%u cols=%u",
  63 + selection->length,
  64 + selection->build,
  65 + selection->rows,
  66 + selection->cols
  67 + );
  68 +
  69 + if(selection->cols != lib3270_get_width(terminal->host) || selection->rows != lib3270_get_height(terminal->host))
  70 + {
  71 + GtkWidget * dialog =
  72 + gtk_message_dialog_new(
  73 + GTK_WINDOW(gtk_widget_get_toplevel(widget)),
  74 + GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
  75 + GTK_MESSAGE_INFO,
  76 + GTK_BUTTONS_NONE,
  77 + _("Not the same terminal type")
  78 + );
  79 +
  80 +
  81 + gtk_window_set_title(GTK_WINDOW(dialog),_("Can't paste"));
  82 +
  83 + gtk_dialog_add_buttons(
  84 + GTK_DIALOG (dialog),
  85 + _("_Cancel"), GTK_RESPONSE_CANCEL,
  86 + _("_Paste as text"), GTK_RESPONSE_APPLY,
  87 + NULL
  88 + );
  89 +
  90 + gtk_dialog_set_default_response(GTK_DIALOG (dialog),GTK_RESPONSE_APPLY);
  91 +
  92 + gint response = gtk_dialog_run(GTK_DIALOG(dialog));
  93 +
  94 + gtk_widget_destroy(dialog);
  95 +
  96 + if(response == GTK_RESPONSE_APPLY)
  97 + {
  98 + gtk_clipboard_request_text(
  99 + clipboard,
  100 + (GtkClipboardTextReceivedFunc) text_received,
  101 + (gpointer) widget
  102 + );
  103 + }
  104 +
  105 + return;
  106 +
  107 + }
  108 +
  109 + if(!v3270_set_from_data_block(terminal, selection))
  110 + {
  111 + debug("%s: Can't paste data",__FUNCTION__);
  112 +
  113 + LIB3270_POPUP popup = {
  114 + .name = "cantpaste",
  115 + .title = _("Can't paste"),
  116 + .summary = _("Unable to paste formatted data."),
  117 + .body = _("None of the screens in the clipboard match with the current one."),
  118 + .label = _("_Paste as text")
  119 + };
  120 +
  121 + if(v3270_popup_dialog_show(widget,&popup,1) == GTK_RESPONSE_APPLY)
  122 + {
  123 + gtk_clipboard_request_text(
  124 + clipboard,
  125 + (GtkClipboardTextReceivedFunc) text_received,
  126 + (gpointer) widget
  127 + );
  128 + }
  129 +
  130 + return;
  131 +
  132 + }
  133 +
  134 +}
  135 +
  136 +static void targets_received(GtkClipboard *clipboard, GdkAtom *atoms, gint n_atoms, GtkWidget *widget) {
  137 +
  138 + // If smart paste is enabled try to get formatted clipboard.
  139 + gboolean screen_paste = ((GTK_V3270(widget)->selection.options & V3270_SELECTION_SCREEN_PASTE) != 0);
  140 +
  141 + debug("%s: Screen paste is %s", __FUNCTION__, screen_paste ? "enabled" : "disabled");
  142 +
  143 + if(screen_paste && has_target(GTK_V3270_GET_CLASS(widget)->clipboard_formatted,atoms,n_atoms)) {
  144 +
  145 + debug("Clipboard as TN3270 \"%s\" data",gdk_atom_name(GTK_V3270_GET_CLASS(widget)->clipboard_formatted));
  146 +
  147 + gtk_clipboard_request_contents(
  148 + clipboard,
  149 + GTK_V3270_GET_CLASS(widget)->clipboard_formatted,
  150 + (GtkClipboardReceivedFunc) formatted_received,
  151 + (gpointer) widget
  152 + );
  153 +
  154 + return;
  155 + }
  156 +
  157 + // No smart paste or formatted data on clipboard, request as text.
  158 + gtk_clipboard_request_text(
  159 + clipboard,
  160 + (GtkClipboardTextReceivedFunc) text_received,
  161 + (gpointer) widget
  162 + );
  163 +
  164 +}
  165 +
  166 +LIB3270_EXPORT void v3270_clipboard_get_from_url(GtkWidget *widget, const gchar *url)
  167 +{
  168 + g_return_if_fail(GTK_IS_V3270(widget));
  169 +
  170 + GtkClipboard * clipboard = gtk_widget_get_clipboard(widget,GTK_V3270(widget)->selection.target);
  171 +
  172 + if(!url || !*url || g_str_has_prefix(url,"clipboard://") || g_str_has_prefix(url,"tn3270://"))
  173 + {
  174 + gtk_clipboard_request_targets(
  175 + clipboard,
  176 + (GtkClipboardTargetsReceivedFunc) targets_received,
  177 + (gpointer) widget
  178 + );
  179 + }
  180 + else if(g_str_has_prefix(url,"text://"))
  181 + {
  182 + gtk_clipboard_request_text(
  183 + clipboard,
  184 + (GtkClipboardTextReceivedFunc) text_received,
  185 + (gpointer) widget
  186 + );
  187 + }
  188 + else if(g_str_has_prefix(url,"file://"))
  189 + {
  190 + GtkWidget * dialog = v3270_load_dialog_new(widget, url+7);
  191 + gtk_widget_show_all(dialog);
  192 + v3270_load_dialog_run(dialog);
  193 + gtk_widget_destroy(dialog);
  194 + }
  195 + else if(g_str_has_prefix(url,"screen://"))
  196 + {
  197 + gtk_clipboard_request_contents(
  198 + clipboard,
  199 + GTK_V3270_GET_CLASS(widget)->clipboard_formatted,
  200 + (GtkClipboardReceivedFunc) formatted_received,
  201 + (gpointer) widget
  202 + );
  203 + }
  204 +
  205 +}
  206 +
  207 +
  208 +LIB3270_EXPORT void v3270_paste(GtkWidget *widget)
  209 +{
  210 + debug("%s",__FUNCTION__);
  211 + v3270_clipboard_get_from_url(widget,NULL);
  212 +}
  213 +
  214 +LIB3270_EXPORT void v3270_paste_text(GtkWidget *widget)
  215 +{
  216 + debug("%s",__FUNCTION__);
  217 + v3270_clipboard_get_from_url(widget,"text://");
  218 +}
  219 +
... ...
src/selection/text.c
... ... @@ -124,7 +124,7 @@ gchar * v3270_convert_to_3270_charset(GtkWidget *widget, const gchar *text, cons
124 124  
125 125 g_autofree gchar *string = g_strdup(text);
126 126  
127   - // FIXME (perry#1#): Is there any better way for a "sed" here?
  127 + // Is there any better way for a "sed" here?
128 128 for(f=0;f<G_N_ELEMENTS(xlat);f++)
129 129 {
130 130 gchar *ptr = g_strstr_len(string,-1,xlat[f].from);
... ...
src/terminal/actions/clipboard.c
... ... @@ -1,78 +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 properties.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   - #include <v3270.h>
32   - #include <v3270/selection.h>
33   - #include <lib3270/trace.h>
34   - #include <lib3270/log.h>
35   -
36   -/*--[ Implement ]------------------------------------------------------------------------------------*/
37   -
38   - int fire_copy_accelerator(GtkWidget *widget, const V3270_ACTION * action) {
39   -
40   - debug("%s",__FUNCTION__);
41   -
42   - v3270_clipboard_set(
43   - widget,
44   - (action->flags & 0x0F),
45   - (action->flags & V3270_ACTION_FLAG_CUT) != 0
46   - );
47   -
48   - return EINVAL;
49   - }
50   -
51   - int fire_paste_accelerator(GtkWidget *widget, const V3270_ACTION * action) {
52   -
53   - switch((int) action->flags)
54   - {
55   - case 0: // Default paste.
56   - v3270_clipboard_get_from_url(widget,NULL);
57   - break;
58   -
59   - case 1: // Text paste.
60   - v3270_clipboard_get_from_url(widget,"text://");
61   - break;
62   -
63   - case 2: // File paste.
64   - v3270_clipboard_get_from_url(widget,"file://");
65   - break;
66   -
67   - case 3: // screen paste.
68   - v3270_clipboard_get_from_url(widget,"screen://");
69   - break;
70   -
71   - default:
72   - g_warning("Unexpected paste flags %u",(unsigned int) action->flags);
73   - }
74   -
75   - return 0;
76   - }
77   -
78   -
src/terminal/actions/private.h
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
2   - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
3   - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
4   - * aplicativos mainframe. Registro no INPI sob o nome G3270.
5   - *
6   - * Copyright (C) <2008> <Banco do Brasil S.A.>
7   - *
8   - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
9   - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
10   - * Free Software Foundation.
11   - *
12   - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
13   - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
14   - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
15   - * obter mais detalhes.
16   - *
17   - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
18   - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como - e possui - linhas de código.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
22 5 *
23   - * Contatos:
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
24 10 *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #include <config.h>
... ... @@ -55,8 +45,6 @@
55 45  
56 46  
57 47 // Internal methods
58   - G_GNUC_INTERNAL int fire_copy_accelerator(GtkWidget *widget, const V3270_ACTION *action);
59   - G_GNUC_INTERNAL int fire_paste_accelerator(GtkWidget *widget, const V3270_ACTION *action);
60 48 G_GNUC_INTERNAL int fire_zoom_action(GtkWidget *widget, const V3270_ACTION *action);
61 49 G_GNUC_INTERNAL int fire_save_action(GtkWidget *widget, const V3270_ACTION *action);
62 50 G_GNUC_INTERNAL int fire_print_action(GtkWidget *widget, const V3270_ACTION *action);
... ...
src/terminal/actions/table.c
... ... @@ -26,8 +26,16 @@
26 26  
27 27 static int fire_copy_as_html(GtkWidget *widget, const struct _v3270_action * action);
28 28 static int fire_copy_as_pixbuff(GtkWidget *widget, const struct _v3270_action * action);
  29 +
  30 + static int fire_copy_accelerator(GtkWidget *widget, const V3270_ACTION *action);
  31 + static int fire_paste_accelerator(GtkWidget *widget, const V3270_ACTION *action);
  32 +
  33 + // Dialogs
29 34 static int fire_accelerators_dialog(GtkWidget *widget, const struct _v3270_action * action);
30 35 static int fire_host_dialog(GtkWidget *widget, const struct _v3270_action * action);
  36 + static int fire_color_dialog(GtkWidget *widget, const struct _v3270_action * action);
  37 + static int fire_clipboard_dialog(GtkWidget *widget, const struct _v3270_action * action);
  38 + static int fire_font_dialog(GtkWidget *widget, const struct _v3270_action * action);
31 39  
32 40 /*--[ Implement ]------------------------------------------------------------------------------------*/
33 41  
... ... @@ -328,11 +336,37 @@
328 336 .group = LIB3270_ACTION_GROUP_OFFLINE,
329 337 .name = "dialog-host",
330 338 .icon = "network-server",
331   - .label = N_("Host settings"),
332   - .summary = N_("Edit host settings"),
  339 + .label = N_("Host and emulation settings"),
  340 + .summary = N_("Edit host and terminal emulation settings"),
333 341 .activate = fire_host_dialog
334 342 },
335 343  
  344 + {
  345 + .group = LIB3270_ACTION_GROUP_NONE,
  346 + .name = "dialog-colors",
  347 + .icon = "gtk-select-color",
  348 + .label = N_("Terminal colors"),
  349 + .summary = N_("Edit terminal colors"),
  350 + .activate = fire_color_dialog
  351 + },
  352 +
  353 + {
  354 + .group = LIB3270_ACTION_GROUP_NONE,
  355 + .name = "dialog-clipboard",
  356 + .label = N_("Selection settings"),
  357 + .summary = N_("Edit clipboard settings"),
  358 + .activate = fire_clipboard_dialog
  359 + },
  360 +
  361 + {
  362 + .group = LIB3270_ACTION_GROUP_NONE,
  363 + .icon = "preferences-desktop-font",
  364 + .name = "dialog-font",
  365 + .label = N_("Font settings"),
  366 + .summary = N_("Select terminal font"),
  367 + .activate = fire_font_dialog
  368 + },
  369 +
336 370 //
337 371 // Terminator
338 372 //
... ... @@ -355,7 +389,7 @@
355 389 return 0;
356 390 }
357 391  
358   - static int fire_accelerators_dialog(GtkWidget *widget, const struct _v3270_action * action) {
  392 + static int fire_accelerators_dialog(GtkWidget *widget, const struct _v3270_action G_GNUC_UNUSED(* action)) {
359 393  
360 394 GtkWidget * dialog =
361 395 v3270_settings_popup_dialog(
... ... @@ -370,8 +404,7 @@
370 404 return 0;
371 405 }
372 406  
373   - static int fire_host_dialog(GtkWidget *widget, const struct _v3270_action * action) {
374   -
  407 + static int fire_host_dialog(GtkWidget *widget, const struct _v3270_action G_GNUC_UNUSED(* action)) {
375 408 gtk_widget_show_all(
376 409 v3270_settings_popup_dialog(
377 410 v3270_host_settings_new(),
... ... @@ -379,49 +412,78 @@
379 412 TRUE
380 413 )
381 414 );
  415 + return 0;
  416 + }
  417 +
  418 + static int fire_color_dialog(GtkWidget *widget, const struct _v3270_action G_GNUC_UNUSED(* action)) {
  419 + gtk_widget_show_all(
  420 + v3270_settings_popup_dialog(
  421 + v3270_color_settings_new(),
  422 + widget,
  423 + FALSE
  424 + )
  425 + );
  426 + return 0;
  427 + }
  428 +
  429 + static int fire_clipboard_dialog(GtkWidget *widget, const struct _v3270_action G_GNUC_UNUSED(* action)) {
  430 + gtk_widget_show_all(
  431 + v3270_settings_popup_dialog(
  432 + v3270_clipboard_settings_new(),
  433 + widget,
  434 + FALSE
  435 + )
  436 + );
  437 + return 0;
  438 + }
382 439  
  440 + static int fire_font_dialog(GtkWidget *widget, const struct _v3270_action G_GNUC_UNUSED(* action)) {
  441 +
  442 + GtkWidget * dialog =
  443 + v3270_settings_popup_dialog(
  444 + v3270_font_settings_new(),
  445 + widget,
  446 + TRUE
  447 + );
  448 + gtk_window_set_default_size(GTK_WINDOW(dialog),950,400);
  449 + gtk_widget_show_all(dialog);
383 450 return 0;
  451 + }
384 452  
385   - /*
386   - GtkWidget * dialog = v3270_settings_dialog_new();
387   - GtkWidget * settings = v3270_host_settings_new();
  453 + static int fire_copy_accelerator(GtkWidget *widget, const V3270_ACTION * action) {
388 454  
389   - v3270_settings_dialog_set_has_subtitle(dialog,FALSE);
  455 + v3270_clipboard_set(
  456 + widget,
  457 + (action->flags & 0x0F),
  458 + (action->flags & V3270_ACTION_FLAG_CUT) != 0
  459 + );
390 460  
391   - gtk_window_set_title(GTK_WINDOW(dialog), v3270_settings_get_title(settings));
392   - gtk_container_add(GTK_CONTAINER(dialog), settings);
  461 + return EINVAL;
  462 + }
393 463  
394   - gtk_dialog_set_toplevel(dialog,widget);
395   - gtk_window_set_modal(GTK_WINDOW(dialog),TRUE);
  464 + static int fire_paste_accelerator(GtkWidget *widget, const V3270_ACTION * action) {
396 465  
397   - v3270_settings_dialog_set_terminal_widget(dialog, widget);
  466 + switch((int) action->flags)
  467 + {
  468 + case 0: // Default paste.
  469 + v3270_clipboard_get_from_url(widget,NULL);
  470 + break;
398 471  
399   - gtk_window_set_default_size(GTK_WINDOW(dialog), 700, 150);
400   - gtk_widget_show_all(dialog);
  472 + case 1: // Text paste.
  473 + v3270_clipboard_get_from_url(widget,"text://");
  474 + break;
401 475  
402   - gboolean again = TRUE;
403   - while(again)
404   - {
405   - gtk_widget_set_sensitive(dialog,TRUE);
406   - gtk_widget_set_visible(dialog,TRUE);
407   -
408   - switch(gtk_dialog_run(GTK_DIALOG(dialog)))
409   - {
410   - case GTK_RESPONSE_APPLY:
411   - debug("V3270HostSelectWidget::%s=%s",__FUNCTION__,"GTK_RESPONSE_APPLY");
412   - v3270_settings_dialog_apply(dialog);
413   - again = lib3270_reconnect(v3270_get_session(widget),0);
414   - break;
415   -
416   - case GTK_RESPONSE_CANCEL:
417   - again = FALSE;
418   - debug("V3270HostSelectWidget::%s=%s",__FUNCTION__,"GTK_RESPONSE_CANCEL");
419   - v3270_settings_dialog_revert(dialog);
420   - break;
421   - }
422   - }
423   -
424   - gtk_widget_destroy(dialog);
425   - */
  476 + case 2: // File paste.
  477 + v3270_clipboard_get_from_url(widget,"file://");
  478 + break;
426 479  
  480 + case 3: // screen paste.
  481 + v3270_clipboard_get_from_url(widget,"screen://");
  482 + break;
  483 +
  484 + default:
  485 + g_warning("Unexpected paste flags %u",(unsigned int) action->flags);
  486 + }
  487 +
  488 + return 0;
427 489 }
... ...
src/terminal/callbacks.c
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
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.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
16 5 *
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
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
20 10 *
21   - * Este programa está nomeado como - e possui - linhas de código.
22   - *
23   - * Contatos:
24   - *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #include <config.h>
... ... @@ -85,23 +75,34 @@ static void update_toggle(H3270 *session, LIB3270_TOGGLE_ID id, unsigned char va
85 75 v3270_update_toggle((GtkWidget *) lib3270_get_user_data(session), id, value, name);
86 76 }
87 77  
88   -static gboolean bg_update_message(H3270 *session)
  78 +
  79 +struct update_message_data
89 80 {
90   - v3270 *terminal = (v3270 *) lib3270_get_user_data(session);
  81 + H3270 *hSession;
  82 + LIB3270_MESSAGE message;
  83 +};
  84 +
  85 +static gboolean bg_update_message(struct update_message_data *data)
  86 +{
  87 + v3270 *terminal = (v3270 *) lib3270_get_user_data(data->hSession);
91 88  
92 89 v3270_signal_emit(
93 90 terminal,
94 91 V3270_SIGNAL_MESSAGE_CHANGED,
95   - (gint) lib3270_get_program_message(session)
  92 + (gint) data->message
96 93 );
97 94  
98   - //trace("-----B %s %p",__FUNCTION__, lib3270_get_user_data(session));
  95 + g_free(data);
99 96 return FALSE;
100 97 }
101 98  
102   -static void update_message(H3270 *session, G_GNUC_UNUSED LIB3270_MESSAGE id)
  99 +static void update_message(H3270 *hSession, LIB3270_MESSAGE message)
103 100 {
104   - g_idle_add((GSourceFunc) bg_update_message, session);
  101 + struct update_message_data *data = g_new0(struct update_message_data,1);
  102 + data->hSession = hSession;
  103 + data->message = message;
  104 +
  105 + g_idle_add((GSourceFunc) bg_update_message, data);
105 106 }
106 107  
107 108 static void update_luname(H3270 *session, const char G_GNUC_UNUSED(*name))
... ... @@ -276,21 +277,6 @@ static void update_selection(H3270 *session, G_GNUC_UNUSED int start, G_GNUC_UNU
276 277  
277 278 }
278 279  
279   -/*
280   -static void message(H3270 *session, LIB3270_NOTIFY type , const char *title, const char *message, const char *text)
281   -{
282   - LIB3270_POPUP popup = {
283   - .type = type,
284   - .title = title,
285   - .summary = message,
286   - .body = text
287   - };
288   -
289   - v3270_popup_dialog_show(GTK_WIDGET(lib3270_get_user_data(session)),&popup,0);
290   -
291   -}
292   -*/
293   -
294 280 static int print(H3270 *session, LIB3270_CONTENT_OPTION mode)
295 281 {
296 282 return v3270_print_dialog(GTK_WIDGET(lib3270_get_user_data(session)), mode, NULL);
... ... @@ -326,27 +312,6 @@ static int load(H3270 *session, const char *filename)
326 312 return 0;
327 313 }
328 314  
329   -/*
330   -static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list args)
331   -{
332   - LIB3270_POPUP popup = {
333   - .type = type,
334   - .title = title,
335   - .summary = msg
336   - };
337   -
338   - g_autofree gchar * body = NULL;
339   -
340   - if(fmt) {
341   - body = g_strdup_vprintf(fmt,args);
342   - popup.body = body;
343   - }
344   -
345   - v3270_popup_dialog_show(GTK_WIDGET(lib3270_get_user_data(session)),&popup,0);
346   -
347   - }
348   - */
349   -
350 315 static gboolean bg_update_ssl(H3270 *session)
351 316 {
352 317 v3270 *terminal = GTK_V3270(lib3270_get_user_data(session));
... ... @@ -371,8 +336,6 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
371 336  
372 337 static void update_ssl(H3270 *session, G_GNUC_UNUSED LIB3270_SSL_STATE state)
373 338 {
374   - debug("----------------------> %d", (int) state);
375   -
376 339 g_idle_add((GSourceFunc) bg_update_ssl, session);
377 340 }
378 341  
... ... @@ -450,6 +413,80 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
450 413 return 0;
451 414 }
452 415  
  416 + struct _word_selected
  417 + {
  418 + H3270 *hSession;
  419 + int offset;
  420 + int len;
  421 + };
  422 +
  423 + static gboolean bg_word_selected(struct _word_selected *cfg)
  424 + {
  425 + v3270 *terminal = (v3270 *) lib3270_get_user_data(cfg->hSession);
  426 +
  427 + debug("%s(open-url=%d)",__FUNCTION__,terminal->open_url);
  428 +
  429 + if(cfg->len > 3 && terminal->open_url) {
  430 +
  431 + lib3270_autoptr(char) text = lib3270_get_string_at_address(cfg->hSession,cfg->offset,cfg->len,0);
  432 +
  433 + if(text && (g_str_has_prefix(text,"http://") || g_str_has_prefix(text,"https://")) ) {
  434 +
  435 + debug("Emitting '%s'", text);
  436 +
  437 + guint response = 0;
  438 + v3270_signal_emit(
  439 + terminal,
  440 + V3270_SIGNAL_OPEN_URL,
  441 + text,
  442 + &response
  443 + );
  444 +
  445 + debug("Response was: %d", (int) response);
  446 +
  447 + if(response == 0) {
  448 + // No one has changed the response, take default action.
  449 + g_message("Opening '%s'",text);
  450 +#ifdef G_OS_WIN32
  451 + if(gtk_show_uri_on_window(
  452 + NULL,
  453 + text,
  454 + GDK_CURRENT_TIME,
  455 + NULL
  456 + )) {
  457 + v3270_unselect(GTK_WIDGET(terminal));
  458 + }
  459 +#else
  460 + if(gtk_show_uri_on_window(
  461 + GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(terminal))),
  462 + text,
  463 + GDK_CURRENT_TIME,
  464 + NULL
  465 + )) {
  466 + v3270_unselect(GTK_WIDGET(terminal));
  467 + }
  468 +#endif // G_OS_WIN32
  469 + }
  470 +
  471 + }
  472 +
  473 + }
  474 +
  475 + return G_SOURCE_REMOVE;
  476 + }
  477 +
  478 + static void word_selected(H3270 *hSession, int from, int to) {
  479 +
  480 + struct _word_selected *cfg = g_new0(struct _word_selected, 1);
  481 +
  482 + cfg->hSession = hSession;
  483 + cfg->offset = from;
  484 + cfg->len = (to-from)+1;
  485 +
  486 + g_idle_add_full(G_PRIORITY_DEFAULT_IDLE,(GSourceFunc) bg_word_selected, cfg, g_free);
  487 +
  488 + }
  489 +
453 490 void v3270_install_callbacks(v3270 *widget)
454 491 {
455 492 struct lib3270_session_callbacks *cbk;
... ... @@ -505,6 +542,7 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
505 542 cbk->popup = popup;
506 543 cbk->action = action;
507 544 cbk->reconnect = reconnect;
  545 + cbk->word_selected = word_selected;
508 546  
509 547 }
510 548  
... ...
src/terminal/macos/init.c 0 → 100644
... ... @@ -0,0 +1,56 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como - e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 + #include <config.h>
  31 + #include <lib3270.h>
  32 + #include <locale.h>
  33 + #include <libintl.h>
  34 + #include <lib3270/log.h>
  35 +
  36 + int libv3270_loaded(void) __attribute__((constructor));
  37 + int libv3270_unloaded(void) __attribute__((destructor));
  38 +
  39 +/*---[ Implement ]-----------------------------------------------------------------------------------------*/
  40 +
  41 + int libv3270_loaded(void) {
  42 +
  43 + debug("LocaleDIR(%s)=%s",PACKAGE_NAME,LIB3270_STRINGIZE_VALUE_OF(LOCALEDIR));
  44 +
  45 + bindtextdomain(PACKAGE_NAME, LIB3270_STRINGIZE_VALUE_OF(LOCALEDIR));
  46 + bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
  47 +
  48 + return 0;
  49 +
  50 + }
  51 +
  52 + int libv3270_unloaded(void) {
  53 +
  54 + return 0;
  55 +
  56 + }
... ...
src/terminal/macos/iosource.c 0 → 100644
... ... @@ -0,0 +1,169 @@
  1 +/*
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
  19 + * St, Fifth Floor, Boston, MA 02110-1301 USA
  20 + *
  21 + * Este programa está nomeado como - e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
  28 + */
  29 +
  30 + #include <config.h>
  31 + #include <lib3270.h>
  32 + #include <lib3270/log.h>
  33 + #include <poll.h>
  34 + #include <internals.h>
  35 + #include <terminal.h>
  36 +
  37 +/*---[ Structs ]-------------------------------------------------------------------------------------------*/
  38 +
  39 + typedef struct _IO_Source
  40 + {
  41 + GSource gsrc;
  42 + GPollFD poll;
  43 + gboolean enabled;
  44 + int fd;
  45 + void (*call)(H3270 *, int, LIB3270_IO_FLAG, void *);
  46 + H3270 * session;
  47 + void * userdata;
  48 + } IO_Source;
  49 +
  50 +static gboolean IO_prepare(GSource *source, gint *timeout);
  51 +static gboolean IO_check(GSource *source);
  52 +static gboolean IO_dispatch(GSource *source, GSourceFunc callback, gpointer user_data);
  53 +static void IO_finalize(GSource *source); /* Can be NULL */
  54 +static gboolean IO_closure(gpointer data);
  55 +
  56 +/*---[ Implement ]-----------------------------------------------------------------------------------------*/
  57 +
  58 +GSource * IO_source_new(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*call)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata)
  59 +{
  60 + static GSourceFuncs IOSources =
  61 + {
  62 + IO_prepare,
  63 + IO_check,
  64 + IO_dispatch,
  65 + IO_finalize,
  66 + IO_closure,
  67 + NULL
  68 + };
  69 +
  70 + IO_Source *src = (IO_Source *) g_source_new(&IOSources,sizeof(IO_Source));
  71 +
  72 + src->fd = fd;
  73 + src->enabled = TRUE;
  74 + src->call = call;
  75 + src->userdata = userdata;
  76 + src->session = session;
  77 +
  78 + src->poll.fd = (int) fd;
  79 + src->poll.events = G_IO_HUP|G_IO_ERR;
  80 +
  81 + if(flag & LIB3270_IO_FLAG_READ)
  82 + src->poll.events |= G_IO_IN;
  83 +
  84 + if(flag & LIB3270_IO_FLAG_WRITE)
  85 + src->poll.events |= G_IO_OUT;
  86 +
  87 + IO_source_set_state((GSource *) src, TRUE);
  88 +
  89 + g_source_attach((GSource *) src,NULL);
  90 + g_source_add_poll((GSource *) src, &((IO_Source *)src)->poll);
  91 +
  92 + return (GSource *) src;
  93 +}
  94 +
  95 +void IO_source_set_state(GSource *source, gboolean enable)
  96 +{
  97 + ((IO_Source *)source)->enabled = enable;
  98 +}
  99 +
  100 +gboolean IO_prepare(G_GNUC_UNUSED GSource *source, G_GNUC_UNUSED gint *timeout)
  101 +{
  102 + /*
  103 + * Called before all the file descriptors are polled.
  104 + * If the source can determine that it is ready here
  105 + * (without waiting for the results of the poll() call)
  106 + * it should return TRUE.
  107 + *
  108 + * It can also return a timeout_ value which should be the maximum
  109 + * timeout (in milliseconds) which should be passed to the poll() call.
  110 + * The actual timeout used will be -1 if all sources returned -1,
  111 + * or it will be the minimum of all the timeout_ values
  112 + * returned which were >= 0.
  113 + *
  114 + */
  115 + return 0;
  116 +}
  117 +
  118 +gboolean IO_check(GSource *source)
  119 +{
  120 + /*
  121 + * Called after all the file descriptors are polled.
  122 + * The source should return TRUE if it is ready to be dispatched.
  123 + * Note that some time may have passed since the previous prepare
  124 + * function was called, so the source should be checked again here.
  125 + *
  126 + */
  127 + if(((IO_Source *) source)->enabled)
  128 + {
  129 + struct pollfd fds;
  130 +
  131 + memset(&fds,0,sizeof(fds));
  132 +
  133 + fds.fd = ((IO_Source *) source)->poll.fd;
  134 + fds.events = ((IO_Source *) source)->poll.events;
  135 +
  136 + if(poll(&fds,1,0) > 0)
  137 + return TRUE;
  138 + }
  139 +
  140 + return FALSE;
  141 +}
  142 +
  143 +gboolean IO_dispatch(GSource *source, G_GNUC_UNUSED GSourceFunc callback, G_GNUC_UNUSED gpointer user_data)
  144 +{
  145 + /*
  146 + * Called to dispatch the event source,
  147 + * after it has returned TRUE in either its prepare or its check function.
  148 + * The dispatch function is passed in a callback function and data.
  149 + * The callback function may be NULL if the source was never connected
  150 + * to a callback using g_source_set_callback(). The dispatch function
  151 + * should call the callback function with user_data and whatever additional
  152 + * parameters are needed for this type of event source.
  153 + */
  154 + IO_Source *obj = (IO_Source *) source;
  155 +
  156 + obj->call(obj->session,obj->fd,0,obj->userdata);
  157 +
  158 + return TRUE;
  159 +}
  160 +
  161 +void IO_finalize(G_GNUC_UNUSED GSource *source)
  162 +{
  163 +
  164 +}
  165 +
  166 +gboolean IO_closure(G_GNUC_UNUSED gpointer data)
  167 +{
  168 + return 0;
  169 +}
... ...
src/terminal/properties/get.c
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
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.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
16 5 *
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
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
20 10 *
21   - * Este programa está nomeado como properties.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)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #include "private.h"
... ... @@ -147,6 +137,10 @@
147 137 g_value_set_boolean(value,window->timer != NULL);
148 138 break;
149 139  
  140 + case V3270_PROPERTY_OPEN_URL:
  141 + g_value_set_boolean(value,window->open_url != 0);
  142 + break;
  143 +
150 144 default:
151 145 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
152 146  
... ...
src/terminal/properties/init.c
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
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
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
20 5 *
21   - * Este programa está nomeado como properties.c e possui - linhas de código.
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
22 10 *
23   - * Contatos:
24   - *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #include "private.h"
... ... @@ -170,6 +160,22 @@
170 160 spec
171 161 );
172 162  
  163 + // Open URL
  164 + spec =
  165 + g_param_spec_boolean(
  166 + "open-url",
  167 + "open-url",
  168 + _( "Emit signal 'open-url' when an http:// or https:// string is selected by action 'word-select'" ),
  169 + FALSE,
  170 + G_PARAM_READABLE|G_PARAM_WRITABLE
  171 + );
  172 +
  173 + g_object_class_install_property(
  174 + gobject_class,
  175 + V3270_PROPERTY_OPEN_URL,
  176 + spec
  177 + );
  178 +
173 179 // Lu names
174 180 spec =
175 181 g_param_spec_string(
... ...
src/terminal/properties/private.h
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
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 properties.c e possui - linhas de código.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
22 5 *
23   - * Contatos:
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
24 10 *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #ifdef WIN32
... ... @@ -60,8 +50,9 @@
60 50 V3270_PROPERTY_SELECTION_OPTIONS = 11,
61 51 V3270_PROPERTY_HAS_COPY = 12, ///< @brief Terminal has copy.
62 52 V3270_PROPERTY_HAS_TIMER = 13, ///< @brief Timer indicator state.
  53 + V3270_PROPERTY_OPEN_URL = 14, ///< @brief Open URL when 'word' selected.
63 54  
64   - V3270_PROPERTY_DYNAMIC = 14 ///< @brief Id of the first LIB3270 internal property.
  55 + V3270_PROPERTY_DYNAMIC = 15 ///< @brief Id of the first LIB3270 internal property.
65 56 };
66 57  
67 58 G_GNUC_INTERNAL void v3270_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
... ...
src/terminal/properties/set.c
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
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.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
16 5 *
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
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
20 10 *
21   - * Este programa está nomeado como properties.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)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #include "private.h"
... ... @@ -143,6 +133,10 @@
143 133 GTK_V3270(object)->selection.options = (V3270SelectionOption) g_value_get_uint(value);
144 134 break;
145 135  
  136 + case V3270_PROPERTY_OPEN_URL:
  137 + GTK_V3270(object)->open_url = (g_value_get_boolean(value) ? 1 : 0);
  138 + break;
  139 +
146 140 default:
147 141 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
148 142  
... ...
src/terminal/widget.c
  1 +/* SPDX-License-Identifier: LGPL-3.0-or-later */
  2 +
1 3 /*
2   - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
3   - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
4   - * aplicativos mainframe. Registro no INPI sob o nome G3270.
5   - *
6   - * Copyright (C) <2008> <Banco do Brasil S.A.>
7   - *
8   - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
9   - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
10   - * Free Software Foundation.
11   - *
12   - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
13   - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
14   - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
15   - * obter mais detalhes.
16   - *
17   - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
18   - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin
19   - * St, Fifth Floor, Boston, MA 02110-1301 USA
20   - *
21   - * Este programa está nomeado como - e possui - linhas de código.
  4 + * Copyright (C) 2008 Banco do Brasil S.A.
22 5 *
23   - * Contatos:
  6 + * This program is free software: you can redistribute it and/or modify
  7 + * it under the terms of the GNU Lesser General Public License as published
  8 + * by the Free Software Foundation, either version 3 of the License, or
  9 + * (at your option) any later version.
24 10 *
25   - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
26   - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  11 + * This program is distributed in the hope that it will be useful,
  12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14 + * GNU General Public License for more details.
27 15 *
  16 + * You should have received a copy of the GNU Lesser General Public License
  17 + * along with this program. If not, see <https://www.gnu.org/licenses/>.
28 18 */
29 19  
30 20 #include <config.h>
31 21 #include <terminal.h>
32   - #include "marshal.h"
  22 + #include <marshal/terminal.h>
33 23  
34 24 #include <lib3270.h>
35 25 #include <lib3270/log.h>
... ... @@ -63,6 +53,7 @@
63 53 /// @brief Persistent properties (load/save from session file).
64 54 static const gchar *persistent_properties[] = {
65 55 "url",
  56 + "open-url",
66 57 "model-number",
67 58 "oversize",
68 59 "host-charset",
... ... @@ -537,6 +528,15 @@ static void finalize(GObject *object) {
537 528 v3270_UINT__POINTER,
538 529 G_TYPE_UINT, 1, G_TYPE_POINTER);
539 530  
  531 + v3270_widget_signal[V3270_SIGNAL_OPEN_URL] =
  532 + g_signal_new( I_("open-url"),
  533 + G_OBJECT_CLASS_TYPE (gobject_class),
  534 + G_SIGNAL_RUN_LAST,
  535 + 0,
  536 + NULL, NULL,
  537 + v3270_UINT__POINTER,
  538 + G_TYPE_UINT, 1, G_TYPE_STRING);
  539 +
540 540 v3270_widget_signal[V3270_SIGNAL_SAVE_POPUP_RESPONSE] =
541 541 g_signal_new( I_("save-popup-response"),
542 542 G_OBJECT_CLASS_TYPE (gobject_class),
... ...
src/testprogram/toolbar.c
... ... @@ -198,11 +198,6 @@
198 198 v3270_clipboard_set(terminal,V3270_COPY_TEXT,FALSE);
199 199 }
200 200  
201   - static void color_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal)
202   - {
203   - v3270_edit_color_table(terminal);
204   - }
205   -
206 201 static void zoom_in_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal)
207 202 {
208 203 v3270_zoom_in(terminal);
... ... @@ -228,12 +223,12 @@
228 223 GCallback callback;
229 224 const gchar * tooltip;
230 225 } buttons[] = {
231   - { "gtk-connect", G_CALLBACK(connect_clicked), "Connect to host" },
232   - { "gtk-disconnect", G_CALLBACK(disconnect_clicked), "Disconnect from host" },
233   - { "gtk-print", G_CALLBACK(print_clicked), "Print screen contents" },
234   - { "gtk-harddisk", G_CALLBACK(ft_clicked), "Open file transfer dialog" },
235   - { "gtk-copy", G_CALLBACK(copy_clicked), "Copy data" },
236   - { "gtk-paste", G_CALLBACK(paste_clicked), "Paste data" },
  226 + { "media-playback-start", G_CALLBACK(connect_clicked), "Connect to host" },
  227 + { "media-playback-stop", G_CALLBACK(disconnect_clicked), "Disconnect from host" },
  228 + { "document-print", G_CALLBACK(print_clicked), "Print screen contents" },
  229 + { "drive-harddisk", G_CALLBACK(ft_clicked), "Open file transfer dialog" },
  230 + { "edit-copy", G_CALLBACK(copy_clicked), "Copy data" },
  231 + { "edit-paste", G_CALLBACK(paste_clicked), "Paste data" },
237 232 { "document-save", G_CALLBACK(save_clicked), "Save screen or selection" },
238 233 { "document-open", G_CALLBACK(load_clicked), "Paste file" },
239 234 { "dialog-information", G_CALLBACK(popup_clicked), "Show test popup" },
... ... @@ -242,7 +237,7 @@
242 237  
243 238 // { "network-server", G_CALLBACK(host_clicked), "Configure host" },
244 239 // { "preferences-desktop-font", G_CALLBACK(font_clicked), "Select font" },
245   - { "gtk-select-color", G_CALLBACK(color_clicked), "Edit or change color scheme" },
  240 +// { "gtk-select-color", G_CALLBACK(color_clicked), "Edit or change color scheme" },
246 241  
247 242  
248 243 { "zoom-in", G_CALLBACK(zoom_in_clicked), "Zoom in" },
... ...
src/trace/trace.c
... ... @@ -43,7 +43,7 @@
43 43 #include <lib3270/properties.h>
44 44 #include <internals.h>
45 45 #include <v3270/dialogs.h>
46   - #include "marshal.h"
  46 + #include <marshal/trace.h>
47 47  
48 48 /*--[ Globals ]--------------------------------------------------------------------------------------*/
49 49  
... ...