Commit 7ea7bbb47191a2e75a29af1e1fbaa5d458e5376c

Authored by Perry Werneck
2 parents a9976197 95067daa
Exists in master and in 1 other branch develop

Merge branch 'master' of github.com:PerryWerneck/libv3270

@@ -53,8 +53,12 @@ glade/v3270.xml @@ -53,8 +53,12 @@ glade/v3270.xml
53 *test.glade* 53 *test.glade*
54 ValgrindOut.xml 54 ValgrindOut.xml
55 *.crl 55 *.crl
  56 +ABOUT-NLS
  57 +intl
  58 +po
56 *.orig 59 *.orig
57 *.patch 60 *.patch
58 *.sh 61 *.sh
59 *.conf 62 *.conf
60 *.pdf 63 *.pdf
  64 +marshal
@@ -24,36 +24,51 @@ @@ -24,36 +24,51 @@
24 # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) 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 #---[ Library configuration ]------------------------------------------------------------ 41 #---[ Library configuration ]------------------------------------------------------------
28 42
29 SONAME=@SONAME@ 43 SONAME=@SONAME@
30 LIBNAME=libv3270 44 LIBNAME=libv3270
31 PRODUCT_NAME=@PRODUCT_NAME@ 45 PRODUCT_NAME=@PRODUCT_NAME@
32 INSTALL_PACKAGES=@INSTALL_PACKAGES@ 46 INSTALL_PACKAGES=@INSTALL_PACKAGES@
  47 +GETTEXT_PACKAGE=@GETTEXT_PACKAGE@
33 48
34 SOURCES= \ 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 TEST_SOURCES= \ 70 TEST_SOURCES= \
56 - $(wildcard src/testprogram/*.c) 71 + $(wildcard $(srcdir)/src/testprogram/*.c)
57 72
58 #---[ Tools ]---------------------------------------------------------------------------- 73 #---[ Tools ]----------------------------------------------------------------------------
59 74
@@ -75,42 +90,28 @@ ZIP=@ZIP@ @@ -75,42 +90,28 @@ ZIP=@ZIP@
75 DLLTOOL=@DLLTOOL@ 90 DLLTOOL=@DLLTOOL@
76 STRIP=@STRIP@ 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 OBJDBG=$(OBJDIR)/Debug 100 OBJDBG=$(OBJDIR)/Debug
97 OBJRLS=$(OBJDIR)/Release 101 OBJRLS=$(OBJDIR)/Release
98 102
99 -BINDIR=$(BASEDIR)/.bin 103 +BINDIR=$(BUILDDIR)/.bin
100 BINDBG=$(BINDIR)/Debug 104 BINDBG=$(BINDIR)/Debug
101 BINRLS=$(BINDIR)/Release 105 BINRLS=$(BINDIR)/Release
102 106
103 #---[ Rules ]---------------------------------------------------------------------------- 107 #---[ Rules ]----------------------------------------------------------------------------
104 108
105 DEPENDS= \ 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 DATE_FMT = +%Y%m%d 116 DATE_FMT = +%Y%m%d
116 ifdef SOURCE_DATE_EPOCH 117 ifdef SOURCE_DATE_EPOCH
@@ -122,6 +123,7 @@ CFLAGS= \ @@ -122,6 +123,7 @@ CFLAGS= \
122 @CFLAGS@ \ 123 @CFLAGS@ \
123 -g \ 124 -g \
124 -Isrc/include \ 125 -Isrc/include \
  126 + -I$(srcdir)/src/include \
125 -DBUILD_DATE=$(BUILD_DATE) \ 127 -DBUILD_DATE=$(BUILD_DATE) \
126 -DLOCALEDIR=$(localedir) \ 128 -DLOCALEDIR=$(localedir) \
127 @LIB3270_CFLAGS@ \ 129 @LIB3270_CFLAGS@ \
@@ -203,7 +205,7 @@ $(OBJRLS)/%.o: \ @@ -203,7 +205,7 @@ $(OBJRLS)/%.o: \
203 205
204 #---[ Misc Rules ]----------------------------------------------------------------------- 206 #---[ Misc Rules ]-----------------------------------------------------------------------
205 207
206 -$(POTDIR)/$(LIBNAME)/%.pot: \ 208 +$(POTDIR)/%.pot: \
207 %.c 209 %.c
208 210
209 @echo $(notdir $@) ... 211 @echo $(notdir $@) ...
@@ -217,7 +219,7 @@ $(POTDIR)/$(LIBNAME)/%.pot: \ @@ -217,7 +219,7 @@ $(POTDIR)/$(LIBNAME)/%.pot: \
217 $< 219 $<
218 @touch $@ 220 @touch $@
219 221
220 -$(POTDIR)/$(LIBNAME)/%.pot: \ 222 +$(POTDIR)/%.pot: \
221 %.rc 223 %.rc
222 224
223 @echo $< ... 225 @echo $< ...
@@ -232,16 +234,16 @@ install-%: \ @@ -232,16 +234,16 @@ install-%: \
232 234
233 #---[ Marshal Targets ]------------------------------------------------------------------ 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 @echo $@ ... 240 @echo $@ ...
239 @$(MKDIR) $(@D) 241 @$(MKDIR) $(@D)
240 242
241 @$(GENMARSHAL) --prefix=v3270 --header $< > $@ 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 @echo $@ ... 248 @echo $@ ...
247 @$(MKDIR) $(@D) 249 @$(MKDIR) $(@D)
@@ -249,7 +251,7 @@ src/dialogs/settings/marshal.h: \ @@ -249,7 +251,7 @@ src/dialogs/settings/marshal.h: \
249 @$(GENMARSHAL) --prefix=v3270 --header $< > $@ 251 @$(GENMARSHAL) --prefix=v3270 --header $< > $@
250 252
251 $(OBJDIR)/marshal/v3270.c: \ 253 $(OBJDIR)/marshal/v3270.c: \
252 - src/terminal/marshal 254 + $(srcdir)/src/terminal/marshal
253 255
254 @echo $@ ... 256 @echo $@ ...
255 @$(MKDIR) $(@D) 257 @$(MKDIR) $(@D)
@@ -257,8 +259,8 @@ $(OBJDIR)/marshal/v3270.c: \ @@ -257,8 +259,8 @@ $(OBJDIR)/marshal/v3270.c: \
257 @$(GENMARSHAL) --prefix=v3270 --body $< > $@ 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 @echo $@ ... 265 @echo $@ ...
264 @$(MKDIR) $(@D) 266 @$(MKDIR) $(@D)
@@ -266,15 +268,15 @@ src/filetransfer/marshal.h: \ @@ -266,15 +268,15 @@ src/filetransfer/marshal.h: \
266 @$(GENMARSHAL) --prefix=v3270ft --header $< > $@ 268 @$(GENMARSHAL) --prefix=v3270ft --header $< > $@
267 269
268 $(OBJDIR)/marshal/v3270ft.c: \ 270 $(OBJDIR)/marshal/v3270ft.c: \
269 - src/filetransfer/marshal 271 + $(srcdir)/src/filetransfer/marshal
270 272
271 @echo $@ ... 273 @echo $@ ...
272 @$(MKDIR) $(@D) 274 @$(MKDIR) $(@D)
273 275
274 @$(GENMARSHAL) --prefix=v3270ft --body $< > $@ 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 @echo $@ ... 281 @echo $@ ...
280 @$(MKDIR) $(@D) 282 @$(MKDIR) $(@D)
@@ -282,14 +284,13 @@ src/trace/marshal.h: \ @@ -282,14 +284,13 @@ src/trace/marshal.h: \
282 @$(GENMARSHAL) --prefix=v3270trace --header $< > $@ 284 @$(GENMARSHAL) --prefix=v3270trace --header $< > $@
283 285
284 $(OBJDIR)/marshal/trace.c: \ 286 $(OBJDIR)/marshal/trace.c: \
285 - src/trace/marshal 287 + $(srcdir)/src/trace/marshal
286 288
287 @echo $@ ... 289 @echo $@ ...
288 @$(MKDIR) $(@D) 290 @$(MKDIR) $(@D)
289 291
290 @$(GENMARSHAL) --prefix=v3270trace --body $< > $@ 292 @$(GENMARSHAL) --prefix=v3270trace --body $< > $@
291 293
292 -  
293 $(OBJDIR)/marshal/%.o: \ 294 $(OBJDIR)/marshal/%.o: \
294 $(OBJDIR)/marshal/%.c \ 295 $(OBJDIR)/marshal/%.c \
295 $(DEPENDS) 296 $(DEPENDS)
@@ -309,7 +310,7 @@ $(OBJDIR)/marshal/%.o: \ @@ -309,7 +310,7 @@ $(OBJDIR)/marshal/%.o: \
309 all: \ 310 all: \
310 $(BINRLS)/$(SONAME) \ 311 $(BINRLS)/$(SONAME) \
311 $(BINRLS)/static/$(LIBNAME).a \ 312 $(BINRLS)/static/$(LIBNAME).a \
312 - locale/$(LIBNAME).pot 313 + locale/$(GETTEXT_PACKAGE).pot
313 314
314 Release: \ 315 Release: \
315 $(BINRLS)/$(SONAME) \ 316 $(BINRLS)/$(SONAME) \
@@ -347,7 +348,7 @@ $(BINRLS)/static/$(LIBNAME).a: \ @@ -347,7 +348,7 @@ $(BINRLS)/static/$(LIBNAME).a: \
347 #---[ Install Targets ]------------------------------------------------------------------ 348 #---[ Install Targets ]------------------------------------------------------------------
348 349
349 install: \ 350 install: \
350 - locale/$(LIBNAME).pot \ 351 + locale/$(GETTEXT_PACKAGE).pot \
351 $(foreach PKG, $(INSTALL_PACKAGES), install-$(PKG)) 352 $(foreach PKG, $(INSTALL_PACKAGES), install-$(PKG))
352 353
353 install-linux-lib: \ 354 install-linux-lib: \
@@ -362,6 +363,18 @@ install-linux-lib: \ @@ -362,6 +363,18 @@ install-linux-lib: \
362 $(BINRLS)/$(SONAME) \ 363 $(BINRLS)/$(SONAME) \
363 $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ 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 install-windows-lib: \ 378 install-windows-lib: \
366 $(BINRLS)/$(SONAME) \ 379 $(BINRLS)/$(SONAME) \
367 install-conf \ 380 install-conf \
@@ -376,7 +389,7 @@ install-windows-lib: \ @@ -376,7 +389,7 @@ install-windows-lib: \
376 389
377 zip: \ 390 zip: \
378 $(BINRLS)/$(SONAME) 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 install-static: \ 394 install-static: \
382 $(BINRLS)/static/$(LIBNAME).a 395 $(BINRLS)/static/$(LIBNAME).a
@@ -393,7 +406,7 @@ install-conf: @@ -393,7 +406,7 @@ install-conf:
393 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/remap 406 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/remap
394 407
395 @$(INSTALL_DATA) \ 408 @$(INSTALL_DATA) \
396 - remap/*.xml \ 409 + $(srcdir)/remap/*.xml \
397 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/remap 410 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/remap
398 411
399 # Install default configs 412 # Install default configs
@@ -401,21 +414,21 @@ install-conf: @@ -401,21 +414,21 @@ install-conf:
401 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME) 414 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)
402 415
403 @$(INSTALL_DATA) \ 416 @$(INSTALL_DATA) \
404 - conf/colors.conf \ 417 + $(srcdir)/conf/colors.conf \
405 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/colors.conf 418 $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/colors.conf
406 419
407 install-dev: \ 420 install-dev: \
408 - locale/$(LIBNAME).pot \ 421 + locale/$(GETTEXT_PACKAGE).pot \
409 install-@OSNAME@-dev 422 install-@OSNAME@-dev
410 423
411 @mkdir -p $(DESTDIR)$(includedir)/v3270 424 @mkdir -p $(DESTDIR)$(includedir)/v3270
412 425
413 @$(INSTALL_DATA) \ 426 @$(INSTALL_DATA) \
414 - src/include/v3270/*.h \ 427 + $(srcdir)/src/include/v3270/*.h \
415 $(DESTDIR)$(includedir)/v3270 428 $(DESTDIR)$(includedir)/v3270
416 429
417 @$(INSTALL_DATA) \ 430 @$(INSTALL_DATA) \
418 - src/include/v3270.h \ 431 + $(srcdir)/src/include/v3270.h \
419 $(DESTDIR)$(includedir)/v3270.h 432 $(DESTDIR)$(includedir)/v3270.h
420 433
421 # Install PKG-CONFIG files 434 # Install PKG-CONFIG files
@@ -426,7 +439,7 @@ install-dev: \ @@ -426,7 +439,7 @@ install-dev: \
426 439
427 # Install translation files 440 # Install translation files
428 @$(MKDIR) $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/pot 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 install-linux-dev: 445 install-linux-dev:
@@ -438,6 +451,15 @@ install-linux-dev: @@ -438,6 +451,15 @@ install-linux-dev:
438 $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \ 451 $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
439 $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@ 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 install-windows-dev: \ 463 install-windows-dev: \
442 strip \ 464 strip \
443 $(BINRLS)/$(LIBNAME).dll.a 465 $(BINRLS)/$(LIBNAME).dll.a
@@ -468,29 +490,29 @@ install-glade: @@ -468,29 +490,29 @@ install-glade:
468 $(DESTDIR)$(datarootdir)/glade/catalogs/v3270.xml 490 $(DESTDIR)$(datarootdir)/glade/catalogs/v3270.xml
469 491
470 @$(INSTALL_DATA) \ 492 @$(INSTALL_DATA) \
471 - branding/icon-16x16.png \ 493 + $(srcdir)/branding/icon-16x16.png \
472 $(DESTDIR)$(datarootdir)/glade/pixmaps/hicolor/16x16/actions/widget-v3270-terminal.png 494 $(DESTDIR)$(datarootdir)/glade/pixmaps/hicolor/16x16/actions/widget-v3270-terminal.png
473 495
474 @$(INSTALL_DATA) \ 496 @$(INSTALL_DATA) \
475 - branding/icon-22x22.png \ 497 + $(srcdir)/branding/icon-22x22.png \
476 $(DESTDIR)$(datarootdir)/glade/pixmaps/hicolor/22x22/actions/widget-v3270-terminal.png 498 $(DESTDIR)$(datarootdir)/glade/pixmaps/hicolor/22x22/actions/widget-v3270-terminal.png
477 499
478 #---[ Misc Targets ]--------------------------------------------------------------------- 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 @rm -f $@ 505 @rm -f $@
484 @$(MKDIR) $(@D) 506 @$(MKDIR) $(@D)
485 @$(MSGCAT) --sort-output $^ > $@ 507 @$(MSGCAT) --sort-output $^ > $@
486 508
487 locale: \ 509 locale: \
488 - locale/$(LIBNAME).pot 510 + locale/$(GETTEXT_PACKAGE).pot
489 511
490 @$(MAKE) -C locale all 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 @rm -f $@ 517 @rm -f $@
496 @$(MKDIR) $(@D) 518 @$(MKDIR) $(@D)
@@ -548,7 +570,7 @@ $(BINDBG)/$(SONAME): \ @@ -548,7 +570,7 @@ $(BINDBG)/$(SONAME): \
548 @$(MKDIR) $(@D) 570 @$(MKDIR) $(@D)
549 @echo $< ... 571 @echo $< ...
550 @$(LD) \ 572 @$(LD) \
551 - -shared -Wl,-soname,$(@F) \ 573 + @DLL_LDFLAGS@ \
552 -o $@ \ 574 -o $@ \
553 -L$(BINDBG) \ 575 -L$(BINDBG) \
554 $(LDFLAGS) \ 576 $(LDFLAGS) \
@@ -562,7 +584,7 @@ clean: \ @@ -562,7 +584,7 @@ clean: \
562 cleanDebug \ 584 cleanDebug \
563 cleanRelease 585 cleanRelease
564 586
565 - @rm -fr $(BASEDIR)/.tmp/$(LIBNAME) 587 + @rm -fr $(BUILDDIR)/.tmp/$(LIBNAME)
566 @rm -fr $(POTDIR)/$(LIBNAME) 588 @rm -fr $(POTDIR)/$(LIBNAME)
567 @rm -fr src/include/marshal 589 @rm -fr src/include/marshal
568 @rm -fr locale/$(LIBNAME).pot 590 @rm -fr locale/$(LIBNAME).pot
@@ -583,7 +605,7 @@ cleanRelease: @@ -583,7 +605,7 @@ cleanRelease:
583 @rm -fr $(OBJDIR)/marshal 605 @rm -fr $(OBJDIR)/marshal
584 @rm -f src/terminal/marshal.h 606 @rm -f src/terminal/marshal.h
585 @rm -f src/filetransfer/marshal.h 607 @rm -f src/filetransfer/marshal.h
586 - @rm -f lib$(LIBNAME).pot 608 + @rm -f $(GETTEXT_PACKAGE).pot
587 609
588 clean: \ 610 clean: \
589 cleanDebug \ 611 cleanDebug \
@@ -93,7 +93,9 @@ For the supported distributions get the install repositories and instructions fr @@ -93,7 +93,9 @@ For the supported distributions get the install repositories and instructions fr
93 make all 93 make all
94 ``` 94 ```
95 95
96 -## Building for macOS (using homebrew) 96 +## Building for macOS
  97 +
  98 +### Using homebrew
97 99
98 1. Build and install [lib3270](../../../lib3270) 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,17 +108,28 @@ For the supported distributions get the install repositories and instructions fr
106 3. Configure, build and install 108 3. Configure, build and install
107 109
108 ```shell 110 ```shell
109 - ./autogen.sh --prefix="$(brew --cellar)/libv3270/5.3" 111 + ./autogen.sh --prefix="$(brew --cellar)/libv3270/5.4"
110 make all && make install 112 make all && make install
111 brew link libv3270 113 brew link libv3270
112 ``` 114 ```
113 115
114 -### Uninstalling  
115 -  
116 -1. To uninstall 116 +To uninstall
117 117
118 ```shell 118 ```shell
119 brew unlink libv3270 119 brew unlink libv3270
120 rm -fr "$(brew --cellar)/libv3270" 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 +
1 #!/bin/bash 1 #!/bin/bash
2 2
  3 +builddir=${PWD}
  4 +
3 test -n "$srcdir" || srcdir=`dirname "$0"` 5 test -n "$srcdir" || srcdir=`dirname "$0"`
4 test -n "$srcdir" || srcdir=. 6 test -n "$srcdir" || srcdir=.
5 7
@@ -8,7 +10,16 @@ cd &quot;$srcdir&quot; @@ -8,7 +10,16 @@ cd &quot;$srcdir&quot;
8 mkdir -p scripts 10 mkdir -p scripts
9 mkdir -p m4 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 if test $? != 0 ; then 23 if test $? != 0 ; then
13 echo "libtoolize failed." 24 echo "libtoolize failed."
14 exit -1 25 exit -1
@@ -34,7 +45,11 @@ fi @@ -34,7 +45,11 @@ fi
34 45
35 automake --add-missing 2> /dev/null | true 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
@@ -52,6 +52,9 @@ AM_INIT_AUTOMAKE @@ -52,6 +52,9 @@ AM_INIT_AUTOMAKE
52 dnl Check for iconv 52 dnl Check for iconv
53 AM_ICONV 53 AM_ICONV
54 54
  55 +dnl Set gettext version
  56 +AM_GNU_GETTEXT_VERSION([0.14])
  57 +
55 dnl Checks for programs. 58 dnl Checks for programs.
56 AC_PROG_CC 59 AC_PROG_CC
57 AC_PROG_SED 60 AC_PROG_SED
@@ -103,9 +106,9 @@ case &quot;$host&quot; in @@ -103,9 +106,9 @@ case &quot;$host&quot; in
103 *-apple-darwin*) 106 *-apple-darwin*)
104 CFLAGS="$CFLAGS -pthread" 107 CFLAGS="$CFLAGS -pthread"
105 LDFLAGS="$LDFLAGS -pthread" 108 LDFLAGS="$LDFLAGS -pthread"
106 - app_cv_osname="linux" 109 + app_cv_osname="macos"
107 LOGDIR="/var/log" 110 LOGDIR="/var/log"
108 - DLLEXT=".so" 111 + DLLEXT=".dylib"
109 DLL_LDFLAGS="-shared -Wl,-install_name,\$(@F)" 112 DLL_LDFLAGS="-shared -Wl,-install_name,\$(@F)"
110 113
111 INSTALL_PACKAGES="linux-lib ${INSTALL_PACKAGES}" 114 INSTALL_PACKAGES="linux-lib ${INSTALL_PACKAGES}"
@@ -195,8 +198,8 @@ case &quot;$host&quot; in @@ -195,8 +198,8 @@ case &quot;$host&quot; in
195 AC_SUBST(SONAME,libv3270.dll) 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,7 +361,7 @@ dnl Directory config
358 dnl --------------------------------------------------------------------------- 361 dnl ---------------------------------------------------------------------------
359 362
360 AC_ARG_WITH([build-dir], [AS_HELP_STRING([--with-build-dir], [Setup build path])], [ app_cv_buildir="$withval" ],[ app_cv_buildir="$ac_pwd" ]) 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 dnl --------------------------------------------------------------------------- 366 dnl ---------------------------------------------------------------------------
364 dnl Configure which files to generate. 367 dnl Configure which files to generate.
locale/Makefile.in
@@ -74,6 +74,7 @@ $(DESTDIR)$(localedir)/%/LC_MESSAGES/$(GETTEXT_PACKAGE).mo: \ @@ -74,6 +74,7 @@ $(DESTDIR)$(localedir)/%/LC_MESSAGES/$(GETTEXT_PACKAGE).mo: \
74 #---[ Targets ]-------------------------------------------------------------------------- 74 #---[ Targets ]--------------------------------------------------------------------------
75 75
76 all: \ 76 all: \
  77 + $(GETTEXT_PACKAGE).pot \
77 $(foreach SRC, $(basename $(wildcard *.po)), $(BINDIR)/$(SRC)/LC_MESSAGES/$(GETTEXT_PACKAGE).mo) 78 $(foreach SRC, $(basename $(wildcard *.po)), $(BINDIR)/$(SRC)/LC_MESSAGES/$(GETTEXT_PACKAGE).mo)
78 79
79 install: \ 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 msgid "" 4 msgid ""
5 msgstr "" 5 msgstr ""
6 "Project-Id-Version: pw3270 5.0\n" 6 "Project-Id-Version: pw3270 5.0\n"
7 "Report-Msgid-Bugs-To: \n" 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 "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" 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 "Language: pt_BR\n" 12 "Language: pt_BR\n"
13 "MIME-Version: 1.0\n" 13 "MIME-Version: 1.0\n"
14 "Content-Type: text/plain; charset=UTF-8\n" 14 "Content-Type: text/plain; charset=UTF-8\n"
@@ -16,17 +16,17 @@ msgstr &quot;&quot; @@ -16,17 +16,17 @@ msgstr &quot;&quot;
16 "X-Poedit-Language: Portuguese\n" 16 "X-Poedit-Language: Portuguese\n"
17 "X-Poedit-Country: BRAZIL\n" 17 "X-Poedit-Country: BRAZIL\n"
18 "X-Poedit-SourceCharset: utf-8\n" 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 msgid "16 colors" 23 msgid "16 colors"
24 msgstr "16 cores" 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 #: src/dialogs/print/settingsdialog.c:286 27 #: src/dialogs/print/settingsdialog.c:286
29 #: src/dialogs/print/settingsdialog.c:288 28 #: src/dialogs/print/settingsdialog.c:288
  29 +#: src/dialogs/print/settingsdialog.c:290
30 msgid "3270 File transfer" 30 msgid "3270 File transfer"
31 msgstr "Transferência de arquivos 3270" 31 msgstr "Transferência de arquivos 3270"
32 32
@@ -34,11 +34,11 @@ msgstr &quot;Transferência de arquivos 3270&quot; @@ -34,11 +34,11 @@ msgstr &quot;Transferência de arquivos 3270&quot;
34 msgid "3270 screen" 34 msgid "3270 screen"
35 msgstr "Tela 3270" 35 msgstr "Tela 3270"
36 36
37 -#: src/dialogs/settings/host.c:168 37 +#: src/dialogs/settings/host.c:169
38 msgid "8 colors" 38 msgid "8 colors"
39 msgstr "8 cores" 39 msgstr "8 cores"
40 40
41 -#: src/terminal/widget.c:159 41 +#: src/terminal/widget.c:152
42 msgid "" 42 msgid ""
43 "<b>Identity not verified</b>\n" 43 "<b>Identity not verified</b>\n"
44 "Disconnected from host" 44 "Disconnected from host"
@@ -54,19 +54,19 @@ msgstr &quot;&lt;b&gt;Opções de texto&lt;/b&gt;&quot; @@ -54,19 +54,19 @@ msgstr &quot;&lt;b&gt;Opções de texto&lt;/b&gt;&quot;
54 msgid "A_ppend to file" 54 msgid "A_ppend to file"
55 msgstr "_Adicionar ao arquivo" 55 msgstr "_Adicionar ao arquivo"
56 56
57 -#: src/dialogs/security.c:238 57 +#: src/dialogs/security.c:239
58 msgid "About security" 58 msgid "About security"
59 msgstr "Sobre a segurança" 59 msgstr "Sobre a segurança"
60 60
61 -#: src/dialogs/settings/accelerator.c:196 61 +#: src/dialogs/settings/accelerator.c:195
62 msgid "Accelerator" 62 msgid "Accelerator"
63 msgstr "Atalho" 63 msgstr "Atalho"
64 64
65 -#: src/dialogs/settings/accelerator.c:334 65 +#: src/dialogs/settings/accelerator.c:333
66 msgid "Accelerator is in use" 66 msgid "Accelerator is in use"
67 msgstr "Atalho está em uso" 67 msgstr "Atalho está em uso"
68 68
69 -#: src/dialogs/settings/accelerator.c:245 69 +#: src/dialogs/settings/accelerator.c:244
70 msgid "Accelerators" 70 msgid "Accelerators"
71 msgstr "Atalhos" 71 msgstr "Atalhos"
72 72
@@ -74,12 +74,12 @@ msgstr &quot;Atalhos&quot; @@ -74,12 +74,12 @@ msgstr &quot;Atalhos&quot;
74 msgid "Action Name" 74 msgid "Action Name"
75 msgstr "Nome da Ação" 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 msgid "Activity already on the queue" 79 msgid "Activity already on the queue"
80 msgstr "Atividade já está na fila" 80 msgstr "Atividade já está na fila"
81 81
82 -#: src/terminal/actions/table.c:99 82 +#: src/terminal/actions/table.c:63
83 msgid "Add to copy" 83 msgid "Add to copy"
84 msgstr "Adicionar à cópia" 84 msgstr "Adicionar à cópia"
85 85
@@ -91,7 +91,7 @@ msgstr &quot;Endereço ou nome do host a conectar.&quot; @@ -91,7 +91,7 @@ msgstr &quot;Endereço ou nome do host a conectar.&quot;
91 msgid "All files" 91 msgid "All files"
92 msgstr "Todos os arquivos" 92 msgstr "Todos os arquivos"
93 93
94 -#: src/dialogs/settings/accelerator.c:206 94 +#: src/dialogs/settings/accelerator.c:205
95 msgid "Alternative" 95 msgid "Alternative"
96 msgstr "Alternativa" 96 msgstr "Alternativa"
97 97
@@ -111,11 +111,11 @@ msgstr &quot;&quot; @@ -111,11 +111,11 @@ msgstr &quot;&quot;
111 msgid "An invalid SEND or RECEIVE parameter was sent to the host." 111 msgid "An invalid SEND or RECEIVE parameter was sent to the host."
112 msgstr "Um parametro de ENVIO/RECEBIMENTO inválido foi enviado para o host." 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 msgid "Append selected area to current clipboard contents" 115 msgid "Append selected area to current clipboard contents"
116 msgstr "Adiciona a área selecionada no conteúdo da área de transferência" 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 msgid "Append selection to clipboard" 119 msgid "Append selection to clipboard"
120 msgstr "Adiciona seleção na área de transferência" 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,16 +123,16 @@ msgstr &quot;Adiciona seleção na área de transferência&quot;
123 msgid "Appends the source file to the destination file." 123 msgid "Appends the source file to the destination file."
124 msgstr "Adiciona conteúdo do arquivo origem ao final do arquivo destino." 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 #, c-format 127 #, c-format
128 msgid "Assign it to action (<b>%s</b>)?" 128 msgid "Assign it to action (<b>%s</b>)?"
129 msgstr "Associar com a ação (<b>%s</b>)?" 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 msgid "Auto _disconnect" 132 msgid "Auto _disconnect"
133 msgstr "Desconexão automática" 133 msgstr "Desconexão automática"
134 134
135 -#: src/dialogs/font/chooser.c:279 135 +#: src/dialogs/font/chooser.c:269
136 msgid "Available fonts" 136 msgid "Available fonts"
137 msgstr "Fontes disponíveis" 137 msgstr "Fontes disponíveis"
138 138
@@ -140,8 +140,8 @@ msgstr &quot;Fontes disponíveis&quot; @@ -140,8 +140,8 @@ msgstr &quot;Fontes disponíveis&quot;
140 msgid "Avblock" 140 msgid "Avblock"
141 msgstr "Avblock" 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 msgid "B_egin transfer" 145 msgid "B_egin transfer"
146 msgstr "Iniciar transferência" 146 msgstr "Iniciar transferência"
147 147
@@ -161,7 +161,7 @@ msgstr &quot;Tamanho do bloco:&quot; @@ -161,7 +161,7 @@ msgstr &quot;Tamanho do bloco:&quot;
161 msgid "Blue" 161 msgid "Blue"
162 msgstr "Azul" 162 msgstr "Azul"
163 163
164 -#: src/dialogs/font/chooser.c:328 164 +#: src/dialogs/font/chooser.c:318
165 msgid "Bold" 165 msgid "Bold"
166 msgstr "Negrito" 166 msgstr "Negrito"
167 167
@@ -173,7 +173,7 @@ msgstr &quot;C_odificação de caracteres&quot; @@ -173,7 +173,7 @@ msgstr &quot;C_odificação de caracteres&quot;
173 msgid "C_olor scheme:" 173 msgid "C_olor scheme:"
174 msgstr "Tema de c_ores:" 174 msgstr "Tema de c_ores:"
175 175
176 -#: src/dialogs/print/settingsdialog.c:244 176 +#: src/dialogs/print/settingsdialog.c:246
177 msgid "Can't add activity" 177 msgid "Can't add activity"
178 msgstr "Não é possível adicionar atividade" 178 msgstr "Não é possível adicionar atividade"
179 179
@@ -205,7 +205,7 @@ msgstr &quot;Erro ao converter valor do cgcsid&quot; @@ -205,7 +205,7 @@ msgstr &quot;Erro ao converter valor do cgcsid&quot;
205 msgid "Can't parse character value" 205 msgid "Can't parse character value"
206 msgstr "Erro ao analisar valor de caractere" 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 msgid "Can't paste" 209 msgid "Can't paste"
210 msgstr "Não é possivel colar" 210 msgstr "Não é possivel colar"
211 211
@@ -213,13 +213,13 @@ msgstr &quot;Não é possivel colar&quot; @@ -213,13 +213,13 @@ msgstr &quot;Não é possivel colar&quot;
213 msgid "Can't paste text" 213 msgid "Can't paste text"
214 msgstr "Não é possível colar texto" 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 #, c-format 218 #, c-format
219 msgid "Can't save %s" 219 msgid "Can't save %s"
220 msgstr "Não foi possível salvar arquivo %s" 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 msgid "Can't set callback table" 223 msgid "Can't set callback table"
224 msgstr "Não foi possível setar a tabela de retornos" 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,16 +227,16 @@ msgstr &quot;Não foi possível setar a tabela de retornos&quot;
227 msgid "Can't set lib3270 I/O controller" 227 msgid "Can't set lib3270 I/O controller"
228 msgstr "Não foi possível registrar manipuladores de I/O 3270" 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 msgid "Can't start file transfer session" 231 msgid "Can't start file transfer session"
232 msgstr "Não foi possível iniciar transferência de arquivo" 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 msgid "Cancel" 236 msgid "Cancel"
237 msgstr "Cancelar" 237 msgstr "Cancelar"
238 238
239 -#: src/filetransfer/transfer.c:90 239 +#: src/filetransfer/transfer.c:91
240 msgid "Cancel transfer operation." 240 msgid "Cancel transfer operation."
241 msgstr "Cancelar transferência" 241 msgstr "Cancelar transferência"
242 242
@@ -244,23 +244,19 @@ msgstr &quot;Cancelar transferência&quot; @@ -244,23 +244,19 @@ msgstr &quot;Cancelar transferência&quot;
244 msgid "Check this if the file consists of character data only." 244 msgid "Check this if the file consists of character data only."
245 msgstr "Marque se o arquivo contem apenas texto." 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 msgid "Clipboard" 248 msgid "Clipboard"
249 msgstr "Área de transferência" 249 msgstr "Área de transferência"
250 250
251 -#: src/terminal/properties/init.c:130 251 +#: src/terminal/properties/init.c:120
252 msgid "Clipboard name" 252 msgid "Clipboard name"
253 msgstr "Nome da área de transferência" 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 #: src/dialogs/settings/colors.c:350 255 #: src/dialogs/settings/colors.c:350
260 msgid "Color _theme" 256 msgid "Color _theme"
261 msgstr "Tema de cores" 257 msgstr "Tema de cores"
262 258
263 -#: src/dialogs/settings/clipboard.c:110 259 +#: src/dialogs/settings/clipboard.c:101
264 msgid "Color theme" 260 msgid "Color theme"
265 msgstr "Tema de cores" 261 msgstr "Tema de cores"
266 262
@@ -268,11 +264,11 @@ msgstr &quot;Tema de cores&quot; @@ -268,11 +264,11 @@ msgstr &quot;Tema de cores&quot;
268 msgid "Colors" 264 msgid "Colors"
269 msgstr "Cores" 265 msgstr "Cores"
270 266
271 -#: src/terminal/properties/init.c:178 267 +#: src/terminal/properties/init.c:184
272 msgid "Comma separated list of LU names" 268 msgid "Comma separated list of LU names"
273 msgstr "Lista de LUs separadas por vírgula" 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 msgid "Comma separated list of LU names." 272 msgid "Comma separated list of LU names."
277 msgstr "Lista de LUs separadas por vírgula." 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,47 +276,47 @@ msgstr &quot;Lista de LUs separadas por vírgula.&quot;
280 msgid "Comma-separated values (CSV)" 276 msgid "Comma-separated values (CSV)"
281 msgstr "Arquivo separado por vírgulas (CSV)" 277 msgstr "Arquivo separado por vírgulas (CSV)"
282 278
283 -#: src/trace/trace.c:358 279 +#: src/trace/trace.c:357
284 msgid "Command to execute" 280 msgid "Command to execute"
285 msgstr "Comando a executar" 281 msgstr "Comando a executar"
286 282
287 -#: src/dialogs/settings/host.c:430 283 +#: src/dialogs/settings/host.c:431
288 msgid "Connection" 284 msgid "Connection"
289 msgstr "Conexão" 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 msgid "Copy" 288 msgid "Copy"
293 msgstr "Copiar" 289 msgstr "Copiar"
294 290
295 -#: src/terminal/actions/table.c:79 291 +#: src/terminal/actions/table.c:72
296 msgid "Copy as HTML" 292 msgid "Copy as HTML"
297 msgstr "Copiar como HTML" 293 msgstr "Copiar como HTML"
298 294
299 -#: src/terminal/actions/table.c:88 295 +#: src/terminal/actions/table.c:81
300 msgid "Copy as image" 296 msgid "Copy as image"
301 msgstr "Copiar como imagem" 297 msgstr "Copiar como imagem"
302 298
303 -#: src/terminal/actions/table.c:112 299 +#: src/terminal/actions/table.c:93
304 msgid "Copy as plain text" 300 msgid "Copy as plain text"
305 msgstr "Copiar como texto puro" 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 msgid "Copy as table" 304 msgid "Copy as table"
309 msgstr "Copiar como tabela" 305 msgstr "Copiar como tabela"
310 306
311 -#: src/dialogs/settings/clipboard.c:250 307 +#: src/dialogs/settings/clipboard.c:252
312 msgid "Copy options" 308 msgid "Copy options"
313 msgstr "Opções da cópia" 309 msgstr "Opções da cópia"
314 310
315 -#: src/terminal/actions/table.c:80 311 +#: src/terminal/actions/table.c:73
316 msgid "Copy selection in HTML format" 312 msgid "Copy selection in HTML format"
317 msgstr "Copia seleção em formato HTML" 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 msgid "Copy selection in image format" 316 msgid "Copy selection in image format"
321 msgstr "Copia imagem da seleção" 317 msgstr "Copia imagem da seleção"
322 318
323 -#: src/terminal/actions/table.c:71 319 +#: src/terminal/actions/table.c:53
324 msgid "Copy selection to clipboard" 320 msgid "Copy selection to clipboard"
325 msgstr "Salvar seleção para área de transferência" 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,24 +354,24 @@ msgstr &quot;Posição atual da transferência&quot;
358 msgid "Current:" 354 msgid "Current:"
359 msgstr "Atual:" 355 msgstr "Atual:"
360 356
361 -#: src/dialogs/settings/host.c:227 357 +#: src/dialogs/settings/host.c:228
362 msgid "Custom Remap" 358 msgid "Custom Remap"
363 msgstr "Mapeamento personalizado" 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 msgid "Cut" 363 msgid "Cut"
368 msgstr "Recortar" 364 msgstr "Recortar"
369 365
370 -#: src/terminal/actions/table.c:143 366 +#: src/terminal/actions/table.c:124
371 msgid "Cut and append to copy" 367 msgid "Cut and append to copy"
372 msgstr "Recortar e adicionar à cópia" 368 msgstr "Recortar e adicionar à cópia"
373 369
374 -#: src/terminal/actions/table.c:154 370 +#: src/terminal/actions/table.c:135
375 msgid "Cut as plain text" 371 msgid "Cut as plain text"
376 msgstr "Recortar como texto puro" 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 msgid "Cut as table" 375 msgid "Cut as table"
380 msgstr "Recortar como tabela" 376 msgstr "Recortar como tabela"
381 377
@@ -403,11 +399,15 @@ msgstr &quot;Turquesa Escuro&quot; @@ -403,11 +399,15 @@ msgstr &quot;Turquesa Escuro&quot;
403 msgid "Default" 399 msgid "Default"
404 msgstr "Padrão" 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 msgid "Don't ask again" 407 msgid "Don't ask again"
408 msgstr "Não perguntar de novo" 408 msgstr "Não perguntar de novo"
409 409
410 -#: src/dialogs/font/chooser.c:335 410 +#: src/dialogs/font/chooser.c:325
411 msgid "Dynamic font spacing" 411 msgid "Dynamic font spacing"
412 msgstr "Espaçamento dinâmico" 412 msgstr "Espaçamento dinâmico"
413 413
@@ -415,11 +415,35 @@ msgstr &quot;Espaçamento dinâmico&quot; @@ -415,11 +415,35 @@ msgstr &quot;Espaçamento dinâmico&quot;
415 msgid "ETA:" 415 msgid "ETA:"
416 msgstr "ETA:" 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 msgid "Emit a PA Key action" 435 msgid "Emit a PA Key action"
420 msgstr "Emite uma ação de tecla PA" 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 msgid "Emulation" 447 msgid "Emulation"
424 msgstr "Emulação" 448 msgstr "Emulação"
425 449
@@ -447,11 +471,11 @@ msgstr &quot;Cor dos campos&quot; @@ -447,11 +471,11 @@ msgstr &quot;Cor dos campos&quot;
447 msgid "File _Format" 471 msgid "File _Format"
448 msgstr "_Formato do arquivo" 472 msgstr "_Formato do arquivo"
449 473
450 -#: src/dialogs/print/settingsdialog.c:361 474 +#: src/dialogs/print/settingsdialog.c:363
451 msgid "Files to transfer" 475 msgid "Files to transfer"
452 msgstr "Arquivos a transferir" 476 msgstr "Arquivos a transferir"
453 477
454 -#: src/terminal/actions/table.c:240 478 +#: src/terminal/actions/table.c:221
455 msgid "Fit best" 479 msgid "Fit best"
456 msgstr "Melhor tamanho" 480 msgstr "Melhor tamanho"
457 481
@@ -459,7 +483,7 @@ msgstr &quot;Melhor tamanho&quot; @@ -459,7 +483,7 @@ msgstr &quot;Melhor tamanho&quot;
459 msgid "Fixed" 483 msgid "Fixed"
460 msgstr "Fixo" 484 msgstr "Fixo"
461 485
462 -#: src/terminal/properties/init.c:224 486 +#: src/terminal/properties/init.c:230
463 msgid "Flags to cut&paste" 487 msgid "Flags to cut&paste"
464 msgstr "Opções para recortar & colar" 488 msgstr "Opções para recortar & colar"
465 489
@@ -480,7 +504,7 @@ msgstr &quot;&quot; @@ -480,7 +504,7 @@ msgstr &quot;&quot;
480 "Seguindo a convenção para arquivos texto ASCII, LF é usado para terminar " 504 "Seguindo a convenção para arquivos texto ASCII, LF é usado para terminar "
481 "registros no arquivo do PC." 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 msgid "Font" 508 msgid "Font"
485 msgstr "Fonte" 509 msgstr "Fonte"
486 510
@@ -494,11 +518,15 @@ msgstr &quot;Fonte \&quot;%s\&quot; não é mono espaçada&quot; @@ -494,11 +518,15 @@ msgstr &quot;Fonte \&quot;%s\&quot; não é mono espaçada&quot;
494 msgid "Font \"%s\" is valid" 518 msgid "Font \"%s\" is valid"
495 msgstr "Fonte \"%s\" é válida" 519 msgstr "Fonte \"%s\" é válida"
496 520
497 -#: src/terminal/properties/init.c:82 521 +#: src/terminal/properties/init.c:72
498 msgid "Font family for terminal contents" 522 msgid "Font family for terminal contents"
499 msgstr "Familia da fonte usada no terminal" 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 msgid "Format" 530 msgid "Format"
503 msgstr "Formato" 531 msgstr "Formato"
504 532
@@ -510,11 +538,11 @@ msgstr &quot;Caminho completo do arquivo local&quot; @@ -510,11 +538,11 @@ msgstr &quot;Caminho completo do arquivo local&quot;
510 msgid "Full path of remote file" 538 msgid "Full path of remote file"
511 msgstr "Caminho completo do arquivo remoto" 539 msgstr "Caminho completo do arquivo remoto"
512 540
513 -#: src/filetransfer/v3270ft.c:371 541 +#: src/filetransfer/v3270ft.c:372
514 msgid "Get transfer queue from an external XML file" 542 msgid "Get transfer queue from an external XML file"
515 msgstr "Obtém a fila de transferência de um arquivo XML externo" 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 msgid "Get transfer queue from file" 546 msgid "Get transfer queue from file"
519 msgstr "Obtêm a fila de arquivos a transferir de um arquivo" 547 msgstr "Obtêm a fila de arquivos a transferir de um arquivo"
520 548
@@ -526,15 +554,19 @@ msgstr &quot;Cinza&quot; @@ -526,15 +554,19 @@ msgstr &quot;Cinza&quot;
526 msgid "Green" 554 msgid "Green"
527 msgstr "Verde" 555 msgstr "Verde"
528 556
529 -#: src/dialogs/settings/clipboard.c:252 557 +#: src/dialogs/settings/clipboard.c:254
530 msgid "HTML options" 558 msgid "HTML options"
531 msgstr "Opções HTML" 559 msgstr "Opções HTML"
532 560
533 -#: src/dialogs/settings/host.c:580 561 +#: src/dialogs/settings/host.c:581
534 msgid "Host" 562 msgid "Host"
535 msgstr "Servidor" 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 msgid "Host settings" 570 msgid "Host settings"
539 msgstr "Configurações do servidor" 571 msgstr "Configurações do servidor"
540 572
@@ -546,15 +578,15 @@ msgstr &quot;Nome do host&quot; @@ -546,15 +578,15 @@ msgstr &quot;Nome do host&quot;
546 msgid "HyperText Markup Language (HTML)" 578 msgid "HyperText Markup Language (HTML)"
547 msgstr "Documento HTML" 579 msgstr "Documento HTML"
548 580
549 -#: src/dialogs/settings/host.c:139 581 +#: src/dialogs/settings/host.c:140
550 msgid "IBM AS/400" 582 msgid "IBM AS/400"
551 msgstr "IBM AS/400" 583 msgstr "IBM AS/400"
552 584
553 -#: src/dialogs/settings/host.c:138 585 +#: src/dialogs/settings/host.c:139
554 msgid "IBM S/390" 586 msgid "IBM S/390"
555 msgstr "IBM S/390" 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 msgid "IDLE minutes for automatic disconnection" 590 msgid "IDLE minutes for automatic disconnection"
559 msgstr "Minutos para desconexão automática" 591 msgstr "Minutos para desconexão automática"
560 592
@@ -566,27 +598,27 @@ msgstr &quot;Nome do ícone&quot; @@ -566,27 +598,27 @@ msgstr &quot;Nome do ícone&quot;
566 msgid "If the action can be activated" 598 msgid "If the action can be activated"
567 msgstr "Se a ação pode ser ativada" 599 msgstr "Se a ação pode ser ativada"
568 600
569 -#: src/filetransfer/transfer.c:80 601 +#: src/filetransfer/transfer.c:81
570 msgid "Ignore" 602 msgid "Ignore"
571 msgstr "Ignore" 603 msgstr "Ignore"
572 604
573 -#: src/filetransfer/transfer.c:81 605 +#: src/filetransfer/transfer.c:82
574 msgid "Ignore the fail and remove the file from queue." 606 msgid "Ignore the fail and remove the file from queue."
575 msgstr "Ignore the fail and remove the file from queue." 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 msgid "Image copy" 610 msgid "Image copy"
579 msgstr "Copiar imagem" 611 msgstr "Copiar imagem"
580 612
581 -#: src/terminal/actions/table.c:220 613 +#: src/terminal/actions/table.c:201
582 msgid "Increase the font size" 614 msgid "Increase the font size"
583 msgstr "Aumenta o tamanho da fonte" 615 msgstr "Aumenta o tamanho da fonte"
584 616
585 -#: src/terminal/actions/table.c:177 617 +#: src/terminal/actions/table.c:158
586 msgid "Input current clipboard contents to screen" 618 msgid "Input current clipboard contents to screen"
587 msgstr "Insere conteúdo da área de transferência" 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 msgid "Insert new file in the transfer queue" 622 msgid "Insert new file in the transfer queue"
591 msgstr "Inserir um novo arquivo na fila de transferência" 623 msgstr "Inserir um novo arquivo na fila de transferência"
592 624
@@ -598,7 +630,7 @@ msgstr &quot;Intensificado/Protegido&quot; @@ -598,7 +630,7 @@ msgstr &quot;Intensificado/Protegido&quot;
598 msgid "Intensified/Unprotected" 630 msgid "Intensified/Unprotected"
599 msgstr "Intensificado/Desprotegido" 631 msgstr "Intensificado/Desprotegido"
600 632
601 -#: src/terminal/callbacks.c:463 633 +#: src/terminal/callbacks.c:489
602 #, c-format 634 #, c-format
603 msgid "" 635 msgid ""
604 "Invalid callback table, the release %s of lib%s can't be used (expecting " 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,24 +647,24 @@ msgstr &quot;Valor cgcsgid é inválido&quot;
615 msgid "Invalid remap scope" 647 msgid "Invalid remap scope"
616 msgstr "Escopo de mapeamento inválido" 648 msgstr "Escopo de mapeamento inválido"
617 649
618 -#: src/dialogs/security.c:185 650 +#: src/dialogs/security.c:186
619 msgid "Invalid state" 651 msgid "Invalid state"
620 msgstr "Estado inválido" 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 msgid "Keyboard accelerators" 656 msgid "Keyboard accelerators"
625 msgstr "Atalhos de teclado" 657 msgstr "Atalhos de teclado"
626 658
627 -#: src/dialogs/settings/host.c:240 659 +#: src/dialogs/settings/host.c:241
628 msgid "L_U Names" 660 msgid "L_U Names"
629 msgstr "Nomes de L_U" 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 msgid "Load" 664 msgid "Load"
633 msgstr "Load" 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 msgid "Load queue from file" 668 msgid "Load queue from file"
637 msgstr "Ler a fila de um arquivo" 669 msgstr "Ler a fila de um arquivo"
638 670
@@ -644,7 +676,7 @@ msgstr &quot;Arquivo local:&quot; @@ -644,7 +676,7 @@ msgstr &quot;Arquivo local:&quot;
644 msgid "Local:" 676 msgid "Local:"
645 msgstr "Local:" 677 msgstr "Local:"
646 678
647 -#: src/dialogs/settings/host.c:215 679 +#: src/dialogs/settings/host.c:216
648 msgid "Makes the screen larger than the default for the chosen model number." 680 msgid "Makes the screen larger than the default for the chosen model number."
649 msgstr "Usa tamanho maior do que o padrão para o modelo escolhido." 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,23 +684,23 @@ msgstr &quot;Usa tamanho maior do que o padrão para o modelo escolhido.&quot;
652 msgid "Misc colors" 684 msgid "Misc colors"
653 msgstr "Cores diversas" 685 msgstr "Cores diversas"
654 686
655 -#: src/dialogs/settings/host.c:196 687 +#: src/dialogs/settings/host.c:197
656 msgid "Model 2 - 80x24" 688 msgid "Model 2 - 80x24"
657 msgstr "Modelo 2 - 80x24" 689 msgstr "Modelo 2 - 80x24"
658 690
659 -#: src/dialogs/settings/host.c:197 691 +#: src/dialogs/settings/host.c:198
660 msgid "Model 3 - 80x32" 692 msgid "Model 3 - 80x32"
661 msgstr "Modelo 3 - 80x32" 693 msgstr "Modelo 3 - 80x32"
662 694
663 -#: src/dialogs/settings/host.c:198 695 +#: src/dialogs/settings/host.c:199
664 msgid "Model 4 - 80x43" 696 msgid "Model 4 - 80x43"
665 msgstr "Modelo 4 - 80x43" 697 msgstr "Modelo 4 - 80x43"
666 698
667 -#: src/dialogs/settings/host.c:199 699 +#: src/dialogs/settings/host.c:200
668 msgid "Model 5 - 132x27" 700 msgid "Model 5 - 132x27"
669 msgstr "Modelo 5 - 132x27" 701 msgstr "Modelo 5 - 132x27"
670 702
671 -#: src/dialogs/settings/host.c:167 703 +#: src/dialogs/settings/host.c:168
672 msgid "Monochrome" 704 msgid "Monochrome"
673 msgstr "Monocromático" 705 msgstr "Monocromático"
674 706
@@ -676,11 +708,11 @@ msgstr &quot;Monocromático&quot; @@ -676,11 +708,11 @@ msgstr &quot;Monocromático&quot;
676 msgid "Mustard" 708 msgid "Mustard"
677 msgstr "Mostarda" 709 msgstr "Mostarda"
678 710
679 -#: src/dialogs/settings/accelerator.c:158 711 +#: src/dialogs/settings/accelerator.c:157
680 msgid "Name" 712 msgid "Name"
681 msgstr "Nome" 713 msgstr "Nome"
682 714
683 -#: src/dialogs/settings/host.c:430 715 +#: src/dialogs/settings/host.c:431
684 msgid "Network connection settings" 716 msgid "Network connection settings"
685 msgstr "Configuração da conexão de rede" 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,11 +720,11 @@ msgstr &quot;Configuração da conexão de rede&quot;
688 msgid "No active transfer" 720 msgid "No active transfer"
689 msgstr "Nenhuma transferência ativa" 721 msgstr "Nenhuma transferência ativa"
690 722
691 -#: src/dialogs/popups.c:141 723 +#: src/dialogs/popups.c:154
692 msgid "No host" 724 msgid "No host"
693 msgstr "Nenhum servidor" 725 msgstr "Nenhum servidor"
694 726
695 -#: src/terminal/properties/get.c:205 727 +#: src/terminal/properties/get.c:193
696 msgid "No host defined" 728 msgid "No host defined"
697 msgstr "Nenhum servidor definido" 729 msgstr "Nenhum servidor definido"
698 730
@@ -708,18 +740,14 @@ msgstr &quot;Nenhuma transferência&quot; @@ -708,18 +740,14 @@ msgstr &quot;Nenhuma transferência&quot;
708 msgid "No transfer in progress" 740 msgid "No transfer in progress"
709 msgstr "Nenhuma transferência em andamento" 741 msgstr "Nenhuma transferência em andamento"
710 742
711 -#: src/dialogs/settings/clipboard.c:317 743 +#: src/dialogs/settings/clipboard.c:328
712 msgid "None (Don't export color)" 744 msgid "None (Don't export color)"
713 msgstr "Nenhum (Não exporta cores)" 745 msgstr "Nenhum (Não exporta cores)"
714 746
715 -#: src/dialogs/settings/clipboard.c:437 747 +#: src/dialogs/settings/clipboard.c:449
716 msgid "None (Don't export font name)" 748 msgid "None (Don't export font name)"
717 msgstr "Nenhuma (Não exporta fontes)" 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 #: src/dialogs/settings/colors.c:174 751 #: src/dialogs/settings/colors.c:174
724 msgid "Normal/Protected" 752 msgid "Normal/Protected"
725 msgstr "Normal/Protegido" 753 msgstr "Normal/Protegido"
@@ -728,7 +756,7 @@ msgstr &quot;Normal/Protegido&quot; @@ -728,7 +756,7 @@ msgstr &quot;Normal/Protegido&quot;
728 msgid "Normal/Unprotected" 756 msgid "Normal/Unprotected"
729 msgstr "Normal/Desprotegido" 757 msgstr "Normal/Desprotegido"
730 758
731 -#: src/selection/linux/paste.c:77 759 +#: src/selection/windows/paste.c:75
732 msgid "Not the same terminal type" 760 msgid "Not the same terminal type"
733 msgstr "O tipo de terminal é diferente" 761 msgstr "O tipo de terminal é diferente"
734 762
@@ -764,19 +792,23 @@ msgstr &quot;Operação falhou&quot; @@ -764,19 +792,23 @@ msgstr &quot;Operação falhou&quot;
764 msgid "Options" 792 msgid "Options"
765 msgstr "Opções" 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 #: src/dialogs/settings/colors.c:165 799 #: src/dialogs/settings/colors.c:165
768 msgid "Orange" 800 msgid "Orange"
769 msgstr "Laranja" 801 msgstr "Laranja"
770 802
771 -#: src/dialogs/settings/host.c:140 803 +#: src/dialogs/settings/host.c:141
772 msgid "Other (TSO)" 804 msgid "Other (TSO)"
773 msgstr "Outro (TSO)" 805 msgstr "Outro (TSO)"
774 806
775 -#: src/dialogs/settings/host.c:141 807 +#: src/dialogs/settings/host.c:142
776 msgid "Other (VM/CMS)" 808 msgid "Other (VM/CMS)"
777 msgstr "Outro (VM/CMS)" 809 msgstr "Outro (VM/CMS)"
778 810
779 -#: src/dialogs/settings/host.c:214 811 +#: src/dialogs/settings/host.c:215
780 msgid "Oversize" 812 msgid "Oversize"
781 msgstr "Oversize" 813 msgstr "Oversize"
782 814
@@ -784,23 +816,23 @@ msgstr &quot;Oversize&quot; @@ -784,23 +816,23 @@ msgstr &quot;Oversize&quot;
784 msgid "Parameter Type" 816 msgid "Parameter Type"
785 msgstr "Tipo de parâmetro" 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 msgid "Paste" 820 msgid "Paste"
789 msgstr "Colar" 821 msgstr "Colar"
790 822
791 -#: src/terminal/actions/table.c:188 823 +#: src/terminal/actions/table.c:169
792 msgid "Paste as plain text" 824 msgid "Paste as plain text"
793 msgstr "Colar como texto puro" 825 msgstr "Colar como texto puro"
794 826
795 -#: src/terminal/actions/table.c:176 827 +#: src/terminal/actions/table.c:157
796 msgid "Paste clipboard contents" 828 msgid "Paste clipboard contents"
797 msgstr "Colar conteúdo da área de transferência" 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 msgid "Paste file" 832 msgid "Paste file"
801 msgstr "Colar arquivo" 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 msgid "Paste formatted screen" 836 msgid "Paste formatted screen"
805 msgstr "Colar tela formatada" 837 msgstr "Colar tela formatada"
806 838
@@ -808,15 +840,15 @@ msgstr &quot;Colar tela formatada&quot; @@ -808,15 +840,15 @@ msgstr &quot;Colar tela formatada&quot;
808 msgid "Paste from file" 840 msgid "Paste from file"
809 msgstr "Colar de um arquivo" 841 msgstr "Colar de um arquivo"
810 842
811 -#: src/terminal/actions/table.c:198 843 +#: src/terminal/actions/table.c:179
812 msgid "Paste from text file" 844 msgid "Paste from text file"
813 msgstr "Colar de um arquivo texto" 845 msgstr "Colar de um arquivo texto"
814 846
815 -#: src/dialogs/settings/clipboard.c:251 847 +#: src/dialogs/settings/clipboard.c:253
816 msgid "Paste options" 848 msgid "Paste options"
817 msgstr "Opções para colar" 849 msgstr "Opções para colar"
818 850
819 -#: src/terminal/actions/table.c:208 851 +#: src/terminal/actions/table.c:189
820 msgid "Paste similar screen from clipboard" 852 msgid "Paste similar screen from clipboard"
821 msgstr "Colar tela semelhante" 853 msgstr "Colar tela semelhante"
822 854
@@ -824,11 +856,11 @@ msgstr &quot;Colar tela semelhante&quot; @@ -824,11 +856,11 @@ msgstr &quot;Colar tela semelhante&quot;
824 msgid "Path and name of the local file" 856 msgid "Path and name of the local file"
825 msgstr "Caminho e nome do arquivo local" 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 msgid "Path to XML file with custom charset mapping." 860 msgid "Path to XML file with custom charset mapping."
829 msgstr "Caminho do arquivo XML com o mapeamento personalizado de caracteres." 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 msgid "Peer certificate" 864 msgid "Peer certificate"
833 msgstr "Certificado apresentado" 865 msgstr "Certificado apresentado"
834 866
@@ -840,7 +872,7 @@ msgstr &quot;Rosa&quot; @@ -840,7 +872,7 @@ msgstr &quot;Rosa&quot;
840 msgid "Plain text" 872 msgid "Plain text"
841 msgstr "Texto puro" 873 msgstr "Texto puro"
842 874
843 -#: src/dialogs/settings/clipboard.c:385 875 +#: src/dialogs/settings/clipboard.c:397
844 msgid "Plain text only" 876 msgid "Plain text only"
845 msgstr "Apenas texto puro" 877 msgstr "Apenas texto puro"
846 878
@@ -868,11 +900,11 @@ msgstr &quot;&quot; @@ -868,11 +900,11 @@ msgstr &quot;&quot;
868 msgid "Primary space" 900 msgid "Primary space"
869 msgstr "Primary space" 901 msgstr "Primary space"
870 902
871 -#: src/terminal/actions/table.c:301 903 +#: src/terminal/actions/table.c:282
872 msgid "Print" 904 msgid "Print"
873 msgstr "Imprimir" 905 msgstr "Imprimir"
874 906
875 -#: src/terminal/actions/table.c:334 907 +#: src/terminal/actions/table.c:315
876 msgid "Print Copy" 908 msgid "Print Copy"
877 msgstr "Imprimir cópia" 909 msgstr "Imprimir cópia"
878 910
@@ -884,19 +916,19 @@ msgstr &quot;Operação de impressão falhou&quot; @@ -884,19 +916,19 @@ msgstr &quot;Operação de impressão falhou&quot;
884 msgid "Print operation has failed" 916 msgid "Print operation has failed"
885 msgstr "Operação de impressão falhou" 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 msgid "Print screen" 920 msgid "Print screen"
889 msgstr "Imprimir tela" 921 msgstr "Imprimir tela"
890 922
891 -#: src/terminal/actions/table.c:302 923 +#: src/terminal/actions/table.c:283
892 msgid "Print screen or selection" 924 msgid "Print screen or selection"
893 msgstr "Imprimir tela ou seleção" 925 msgstr "Imprimir tela ou seleção"
894 926
895 -#: src/terminal/actions/table.c:323 927 +#: src/terminal/actions/table.c:304
896 msgid "Print selected" 928 msgid "Print selected"
897 msgstr "Imprimir seleção" 929 msgstr "Imprimir seleção"
898 930
899 -#: src/terminal/actions/table.c:324 931 +#: src/terminal/actions/table.c:305
900 msgid "Print selected area" 932 msgid "Print selected area"
901 msgstr "Imprimir área selecionada" 933 msgstr "Imprimir área selecionada"
902 934
@@ -904,7 +936,7 @@ msgstr &quot;Imprimir área selecionada&quot; @@ -904,7 +936,7 @@ msgstr &quot;Imprimir área selecionada&quot;
904 msgid "Print selection box" 936 msgid "Print selection box"
905 msgstr "Imprimir marca de seleção" 937 msgstr "Imprimir marca de seleção"
906 938
907 -#: src/terminal/actions/table.c:313 939 +#: src/terminal/actions/table.c:294
908 msgid "Print the entire screen" 940 msgid "Print the entire screen"
909 msgstr "Imprimir toda a tela" 941 msgstr "Imprimir toda a tela"
910 942
@@ -928,7 +960,7 @@ msgstr &quot;Receber arquivo&quot; @@ -928,7 +960,7 @@ msgstr &quot;Receber arquivo&quot;
928 msgid "Receive text file" 960 msgid "Receive text file"
929 msgstr "Receber arquivo texto" 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 msgid "Receiving file" 964 msgid "Receiving file"
933 msgstr "Recebendo arquivo" 965 msgstr "Recebendo arquivo"
934 966
@@ -936,7 +968,7 @@ msgstr &quot;Recebendo arquivo&quot; @@ -936,7 +968,7 @@ msgstr &quot;Recebendo arquivo&quot;
936 msgid "Record Length" 968 msgid "Record Length"
937 msgstr "Comprimento de registro:" 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 msgid "Record format" 972 msgid "Record format"
941 msgstr "Formato de registro" 973 msgstr "Formato de registro"
942 974
@@ -965,33 +997,33 @@ msgstr &quot;Arquivo remoto:&quot; @@ -965,33 +997,33 @@ msgstr &quot;Arquivo remoto:&quot;
965 msgid "Remote:" 997 msgid "Remote:"
966 msgstr "Remoto:" 998 msgstr "Remoto:"
967 999
968 -#: src/filetransfer/v3270ft.c:395 1000 +#: src/filetransfer/v3270ft.c:396
969 msgid "Remove selected file from the transfer queue" 1001 msgid "Remove selected file from the transfer queue"
970 msgstr "Remove arquivo selecionado da fila de transferência" 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 msgid "Replace current clipboard contents with the selected area" 1005 msgid "Replace current clipboard contents with the selected area"
974 msgstr "Substituí conteúdo da área de transferência com a seleção" 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 msgid "" 1009 msgid ""
978 "Replace current clipboard contents with the selected area in HTML format" 1010 "Replace current clipboard contents with the selected area in HTML format"
979 msgstr "" 1011 msgstr ""
980 "Substituí conteúdo da área de transferência com o conteúdo da área " 1012 "Substituí conteúdo da área de transferência com o conteúdo da área "
981 "selecionada em formato HTML" 1013 "selecionada em formato HTML"
982 1014
983 -#: src/terminal/actions/table.c:90 1015 +#: src/terminal/actions/table.c:83
984 msgid "" 1016 msgid ""
985 "Replace current clipboard contents with the selected area in image format" 1017 "Replace current clipboard contents with the selected area in image format"
986 msgstr "" 1018 msgstr ""
987 "Substituí conteúdo da área de transferência com uma imagem da área " 1019 "Substituí conteúdo da área de transferência com uma imagem da área "
988 "selecionada" 1020 "selecionada"
989 1021
990 -#: src/filetransfer/transfer.c:83 1022 +#: src/filetransfer/transfer.c:84
991 msgid "Retry" 1023 msgid "Retry"
992 msgstr "Repetir" 1024 msgstr "Repetir"
993 1025
994 -#: src/dialogs/security.c:143 1026 +#: src/dialogs/security.c:144
995 msgid "Revocation list" 1027 msgid "Revocation list"
996 msgstr "Lista de revogados" 1028 msgstr "Lista de revogados"
997 1029
@@ -1007,49 +1039,49 @@ msgstr &quot;&quot; @@ -1007,49 +1039,49 @@ msgstr &quot;&quot;
1007 msgid "SSL/TLS" 1039 msgid "SSL/TLS"
1008 msgstr "SSL/TLS" 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 msgid "Same of the screen" 1043 msgid "Same of the screen"
1012 msgstr "Igual ao terminal" 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 msgid "Save" 1049 msgid "Save"
1018 msgstr "Salvar" 1050 msgstr "Salvar"
1019 1051
1020 -#: src/terminal/actions/table.c:288 1052 +#: src/terminal/actions/table.c:269
1021 msgid "Save Copy" 1053 msgid "Save Copy"
1022 msgstr "Salvar cópia" 1054 msgstr "Salvar cópia"
1023 1055
1024 -#: src/trace/tracewindow.c:124 1056 +#: src/trace/tracewindow.c:125
1025 msgid "Save _As" 1057 msgid "Save _As"
1026 msgstr "Salvar _Como" 1058 msgstr "Salvar _Como"
1027 1059
1028 -#: src/terminal/actions/table.c:264 1060 +#: src/terminal/actions/table.c:245
1029 msgid "Save all" 1061 msgid "Save all"
1030 msgstr "Salvar tela" 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 msgid "Save copy" 1065 msgid "Save copy"
1034 msgstr "Salvar cópia" 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 msgid "Save queue to file" 1069 msgid "Save queue to file"
1038 msgstr "Salvar a fila para um arquivo" 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 msgid "Save screen" 1073 msgid "Save screen"
1042 msgstr "Salvar tela" 1074 msgstr "Salvar tela"
1043 1075
1044 -#: src/terminal/actions/table.c:255 1076 +#: src/terminal/actions/table.c:236
1045 msgid "Save screen or selection" 1077 msgid "Save screen or selection"
1046 msgstr "Salvar tela ou seleção" 1078 msgstr "Salvar tela ou seleção"
1047 1079
1048 -#: src/terminal/actions/table.c:275 1080 +#: src/terminal/actions/table.c:256
1049 msgid "Save selected" 1081 msgid "Save selected"
1050 msgstr "Salvar seleção" 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 msgid "Save selected area" 1085 msgid "Save selected area"
1054 msgstr "Salvar área selecionada" 1086 msgstr "Salvar área selecionada"
1055 1087
@@ -1057,35 +1089,35 @@ msgstr &quot;Salvar área selecionada&quot; @@ -1057,35 +1089,35 @@ msgstr &quot;Salvar área selecionada&quot;
1057 msgid "Save terminal contents" 1089 msgid "Save terminal contents"
1058 msgstr "Salvar conteúdo da tela" 1090 msgstr "Salvar conteúdo da tela"
1059 1091
1060 -#: src/trace/trace.c:498 1092 +#: src/trace/trace.c:497
1061 msgid "Save trace to file" 1093 msgid "Save trace to file"
1062 msgstr "Salvar trace para arquivo" 1094 msgstr "Salvar trace para arquivo"
1063 1095
1064 -#: src/dialogs/transfer.c:68 1096 +#: src/dialogs/transfer.c:69
1065 msgid "Save transfer activity to file" 1097 msgid "Save transfer activity to file"
1066 msgstr "Salvar atividade de transferência para arquivo" 1098 msgstr "Salvar atividade de transferência para arquivo"
1067 1099
1068 -#: src/dialogs/transfer.c:187 1100 +#: src/dialogs/transfer.c:188
1069 msgid "Save transfer information to file" 1101 msgid "Save transfer information to file"
1070 msgstr "Salvar informações da transferência para arquivo" 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 msgid "Save transfer queue" 1105 msgid "Save transfer queue"
1074 msgstr "Salvar fila de transferências" 1106 msgstr "Salvar fila de transferências"
1075 1107
1076 -#: src/filetransfer/v3270ft.c:379 1108 +#: src/filetransfer/v3270ft.c:380
1077 msgid "Save transfer queue to an external XML file" 1109 msgid "Save transfer queue to an external XML file"
1078 msgstr "Guarda fila de transferência num arquivo XML externo" 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 msgid "Save transfer queue to file" 1113 msgid "Save transfer queue to file"
1082 msgstr "Salvar fila de transferências para arquivo" 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 msgid "Screen with terminal attributes" 1117 msgid "Screen with terminal attributes"
1086 msgstr "Completa incluindo atributos do terminal" 1118 msgstr "Completa incluindo atributos do terminal"
1087 1119
1088 -#: src/terminal/actions/table.c:209 1120 +#: src/terminal/actions/table.c:190
1089 msgid "" 1121 msgid ""
1090 "Search clipboard for a similar screen, if found paste unprotected fields and " 1122 "Search clipboard for a similar screen, if found paste unprotected fields and "
1091 "restore cursor position" 1123 "restore cursor position"
@@ -1113,16 +1145,16 @@ msgstr &quot;Segurança&quot; @@ -1113,16 +1145,16 @@ msgstr &quot;Segurança&quot;
1113 msgid "Security engine" 1145 msgid "Security engine"
1114 msgstr "Mecanismo de segurança" 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 msgid "Select" 1150 msgid "Select"
1119 msgstr "Selecionar" 1151 msgstr "Selecionar"
1120 1152
1121 -#: src/dialogs/settings/host.c:452 1153 +#: src/dialogs/settings/host.c:453
1122 msgid "Select charset remap file" 1154 msgid "Select charset remap file"
1123 msgstr "Selecionar arquivo com mapeamento personalizado" 1155 msgstr "Selecionar arquivo com mapeamento personalizado"
1124 1156
1125 -#: src/dialogs/settings/host.c:363 1157 +#: src/dialogs/settings/host.c:364
1126 msgid "Select custom charset mapping" 1158 msgid "Select custom charset mapping"
1127 msgstr "Seleciona mapeamento de teclado personalizado" 1159 msgstr "Seleciona mapeamento de teclado personalizado"
1128 1160
@@ -1130,31 +1162,39 @@ msgstr &quot;Seleciona mapeamento de teclado personalizado&quot; @@ -1130,31 +1162,39 @@ msgstr &quot;Seleciona mapeamento de teclado personalizado&quot;
1130 msgid "Select destination file" 1162 msgid "Select destination file"
1131 msgstr "Selecionar arquivo destino" 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 #: src/dialogs/load.c:186 1166 #: src/dialogs/load.c:186
1135 msgid "Select file" 1167 msgid "Select file"
1136 msgstr "Selecionar arquivo" 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 msgid "Select first file" 1171 msgid "Select first file"
1140 msgstr "Selecionar primeiro arquivo" 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 msgid "Select last file" 1175 msgid "Select last file"
1144 msgstr "Selecionar último arquivo" 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 msgid "Select local file" 1179 msgid "Select local file"
1148 msgstr "Selecionar arquivo local" 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 msgid "Select next file" 1183 msgid "Select next file"
1152 msgstr "Selecionar próximo arquivo" 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 msgid "Select previous file" 1191 msgid "Select previous file"
1156 msgstr "Selecionar arquivo anterior" 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 #: src/dialogs/settings/colors.c:177 1198 #: src/dialogs/settings/colors.c:177
1159 msgid "Selection background" 1199 msgid "Selection background"
1160 msgstr "Fundo da seleção" 1200 msgstr "Fundo da seleção"
@@ -1163,6 +1203,10 @@ msgstr &quot;Fundo da seleção&quot; @@ -1163,6 +1203,10 @@ msgstr &quot;Fundo da seleção&quot;
1163 msgid "Selection foreground" 1203 msgid "Selection foreground"
1164 msgstr "Frente da seleção" 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 #: src/filetransfer/tables.c:130 1210 #: src/filetransfer/tables.c:130
1167 msgid "Send file" 1211 msgid "Send file"
1168 msgstr "Enviar arquivo" 1212 msgstr "Enviar arquivo"
@@ -1171,7 +1215,7 @@ msgstr &quot;Enviar arquivo&quot; @@ -1171,7 +1215,7 @@ msgstr &quot;Enviar arquivo&quot;
1171 msgid "Send text file" 1215 msgid "Send text file"
1172 msgstr "Enviar arquivo texto" 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 msgid "Sending file" 1219 msgid "Sending file"
1176 msgstr "Enviando arquivo" 1220 msgstr "Enviando arquivo"
1177 1221
@@ -1179,27 +1223,27 @@ msgstr &quot;Enviando arquivo&quot; @@ -1179,27 +1223,27 @@ msgstr &quot;Enviando arquivo&quot;
1179 msgid "Service/Port" 1223 msgid "Service/Port"
1180 msgstr "Serviço/Porta" 1224 msgstr "Serviço/Porta"
1181 1225
1182 -#: src/terminal/actions/table.c:241 1226 +#: src/terminal/actions/table.c:222
1183 msgid "Set the font to the best size for window" 1227 msgid "Set the font to the best size for window"
1184 msgstr "Ajusta a fonte para o melhor tamanho" 1228 msgstr "Ajusta a fonte para o melhor tamanho"
1185 1229
1186 -#: src/terminal/actions.c:72 1230 +#: src/terminal/actions.c:73
1187 msgid "Setup host properties" 1231 msgid "Setup host properties"
1188 msgstr "Configurar host" 1232 msgstr "Configurar host"
1189 1233
1190 -#: src/filetransfer/transfer.c:86 1234 +#: src/filetransfer/transfer.c:87
1191 msgid "Skip" 1235 msgid "Skip"
1192 msgstr "Skip" 1236 msgstr "Skip"
1193 1237
1194 -#: src/filetransfer/transfer.c:87 1238 +#: src/filetransfer/transfer.c:88
1195 msgid "Skip this transfer, keep the file on queue." 1239 msgid "Skip this transfer, keep the file on queue."
1196 msgstr "Skip this transfer, keep the file on queue." 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 msgid "Smart copy" 1243 msgid "Smart copy"
1200 msgstr "Cópia inteligente" 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 msgid "Space allocation units" 1247 msgid "Space allocation units"
1204 msgstr "Unidades de alocação de espaço" 1248 msgstr "Unidades de alocação de espaço"
1205 1249
@@ -1247,11 +1291,11 @@ msgstr &quot;&quot; @@ -1247,11 +1291,11 @@ msgstr &quot;&quot;
1247 msgid "Speed:" 1291 msgid "Speed:"
1248 msgstr "Velocidade:" 1292 msgstr "Velocidade:"
1249 1293
1250 -#: src/filetransfer/v3270ft.c:403 1294 +#: src/filetransfer/v3270ft.c:404
1251 msgid "Start file transfer" 1295 msgid "Start file transfer"
1252 msgstr "Iniciar transferência de arquivo" 1296 msgstr "Iniciar transferência de arquivo"
1253 1297
1254 -#: src/dialogs/print/settingsdialog.c:435 1298 +#: src/dialogs/print/settingsdialog.c:437
1255 msgid "Start transfer" 1299 msgid "Start transfer"
1256 msgstr "Iniciar transferência" 1300 msgstr "Iniciar transferência"
1257 1301
@@ -1259,7 +1303,7 @@ msgstr &quot;Iniciar transferência&quot; @@ -1259,7 +1303,7 @@ msgstr &quot;Iniciar transferência&quot;
1259 msgid "Starting" 1303 msgid "Starting"
1260 msgstr "Iniciando" 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 msgid "Starting transfer" 1307 msgid "Starting transfer"
1264 msgstr "Iniciando transferência" 1308 msgstr "Iniciando transferência"
1265 1309
@@ -1271,27 +1315,27 @@ msgstr &quot;Situação&quot; @@ -1271,27 +1315,27 @@ msgstr &quot;Situação&quot;
1271 msgid "State Type" 1315 msgid "State Type"
1272 msgstr "Tipo de situação" 1316 msgstr "Tipo de situação"
1273 1317
1274 -#: src/terminal/properties/init.c:162 1318 +#: src/terminal/properties/init.c:152
1275 msgid "State of the dynamic font spacing" 1319 msgid "State of the dynamic font spacing"
1276 msgstr "Estado do espaçamento dinâmico" 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 msgid "Summary" 1323 msgid "Summary"
1280 msgstr "Sumário" 1324 msgstr "Sumário"
1281 1325
1282 -#: src/dialogs/settings/host.c:124 1326 +#: src/dialogs/settings/host.c:125
1283 msgid "System _type" 1327 msgid "System _type"
1284 msgstr "_Tipo de servidor" 1328 msgstr "_Tipo de servidor"
1285 1329
1286 -#: src/dialogs/settings/host.c:166 1330 +#: src/dialogs/settings/host.c:167
1287 msgid "System default" 1331 msgid "System default"
1288 msgstr "Padrão do sistema" 1332 msgstr "Padrão do sistema"
1289 1333
1290 -#: src/dialogs/settings/host.c:376 1334 +#: src/dialogs/settings/host.c:377
1291 msgid "TN3270 Custom charset" 1335 msgid "TN3270 Custom charset"
1292 msgstr "Código de página TN3270 personalizado" 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 msgid "TN3270 Emulation settings" 1339 msgid "TN3270 Emulation settings"
1296 msgstr "Configuração da emulação TN3270" 1340 msgstr "Configuração da emulação TN3270"
1297 1341
@@ -1299,16 +1343,16 @@ msgstr &quot;Configuração da emulação TN3270&quot; @@ -1299,16 +1343,16 @@ msgstr &quot;Configuração da emulação TN3270&quot;
1299 msgid "TN3270 Host URL" 1343 msgid "TN3270 Host URL"
1300 msgstr "URL do servidor TN3270" 1344 msgstr "URL do servidor TN3270"
1301 1345
1302 -#: src/terminal/properties/init.c:97 1346 +#: src/terminal/properties/init.c:87
1303 msgid "TN3270 Session name" 1347 msgid "TN3270 Session name"
1304 msgstr "Nome da sessão TN3270" 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 msgid "Terminal colors" 1352 msgid "Terminal colors"
1309 msgstr "Cores do terminal" 1353 msgstr "Cores do terminal"
1310 1354
1311 -#: src/dialogs/font/chooser.c:349 1355 +#: src/dialogs/font/chooser.c:339
1312 msgid "Terminal font" 1356 msgid "Terminal font"
1313 msgstr "Fonte do terminal" 1357 msgstr "Fonte do terminal"
1314 1358
@@ -1326,7 +1370,7 @@ msgstr &quot;&quot; @@ -1326,7 +1370,7 @@ msgstr &quot;&quot;
1326 "has been reached, or the maximum number of data blocks per file (16060) has " 1370 "has been reached, or the maximum number of data blocks per file (16060) has "
1327 "been reached." 1371 "been reached."
1328 1372
1329 -#: src/dialogs/settings/host.c:561 1373 +#: src/dialogs/settings/host.c:562
1330 msgid "The EBCDIC host character set. " 1374 msgid "The EBCDIC host character set. "
1331 msgstr "A tabela de caracteres EBCDIC." 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,7 +1418,7 @@ msgstr &quot;O host detectou um erro no arquivo durante a operação de recebimento.&quot;
1374 msgid "The label for the action" 1418 msgid "The label for the action"
1375 msgstr "A etiqueta da ação" 1419 msgstr "A etiqueta da ação"
1376 1420
1377 -#: src/dialogs/settings/host.c:181 1421 +#: src/dialogs/settings/host.c:182
1378 msgid "The model of 3270 display to be emulated" 1422 msgid "The model of 3270 display to be emulated"
1379 msgstr "Modelo de tela 3270 a ser emulada" 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,12 +1449,12 @@ msgstr &quot;Operação de impressão está em andamento&quot;
1405 msgid "The print settings should be stored." 1449 msgid "The print settings should be stored."
1406 msgstr "Configuração de impressão deve ser armazenada" 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 #, c-format 1453 #, c-format
1410 msgid "The selected accelerator is in use by action <b>%s</b> (<b>%s</b>)" 1454 msgid "The selected accelerator is in use by action <b>%s</b> (<b>%s</b>)"
1411 msgstr "O atalho selecionado está em uso pela ação <b>%s</b> (<b>%s</b>)" 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 msgid "The selected accelerator is in use by the same action" 1458 msgid "The selected accelerator is in use by the same action"
1415 msgstr "O atalho selecionado está em uso na mesma ação" 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,7 +1462,7 @@ msgstr &quot;O atalho selecionado está em uso na mesma ação&quot;
1418 msgid "The state the action is in" 1462 msgid "The state the action is in"
1419 msgstr "A situação da ação está em" 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 msgid "The terminal colors" 1466 msgid "The terminal colors"
1423 msgstr "As cores do terminal" 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,7 +1482,7 @@ msgstr &quot;The type of the state kept by the action&quot;
1438 msgid "There is not enough space available for data on the host." 1482 msgid "There is not enough space available for data on the host."
1439 msgstr "Não existe espaço suficiente no host para os dados." 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 msgid "There's no security information in the session" 1486 msgid "There's no security information in the session"
1443 msgstr "Não existe informação de segurança na sessão" 1487 msgstr "Não existe informação de segurança na sessão"
1444 1488
@@ -1462,7 +1506,7 @@ msgstr &quot;Total:&quot; @@ -1462,7 +1506,7 @@ msgstr &quot;Total:&quot;
1462 msgid "Trace" 1506 msgid "Trace"
1463 msgstr "Trace" 1507 msgstr "Trace"
1464 1508
1465 -#: src/terminal/properties/init.c:193 1509 +#: src/terminal/properties/init.c:199
1466 msgid "Trace window" 1510 msgid "Trace window"
1467 msgstr "Janela de trace" 1511 msgstr "Janela de trace"
1468 1512
@@ -1470,7 +1514,7 @@ msgstr &quot;Janela de trace&quot; @@ -1470,7 +1514,7 @@ msgstr &quot;Janela de trace&quot;
1470 msgid "Tracks" 1514 msgid "Tracks"
1471 msgstr "Trilhas" 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 msgid "Transfer failed" 1518 msgid "Transfer failed"
1475 msgstr "Transferência falhou" 1519 msgstr "Transferência falhou"
1476 1520
@@ -1478,13 +1522,13 @@ msgstr &quot;Transferência falhou&quot; @@ -1478,13 +1522,13 @@ msgstr &quot;Transferência falhou&quot;
1478 msgid "Transfer operation has timed out" 1522 msgid "Transfer operation has timed out"
1479 msgstr "Operação de transferência esgotou o tempo de espera" 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 msgid "Transfer options" 1526 msgid "Transfer options"
1483 msgstr "Opções de transferência" 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 msgid "Transfer queue" 1532 msgid "Transfer queue"
1489 msgstr "Fila de transferências" 1533 msgstr "Fila de transferências"
1490 1534
@@ -1492,15 +1536,15 @@ msgstr &quot;Fila de transferências&quot; @@ -1492,15 +1536,15 @@ msgstr &quot;Fila de transferências&quot;
1492 msgid "Transfer speed" 1536 msgid "Transfer speed"
1493 msgstr "Velocidade de transferência" 1537 msgstr "Velocidade de transferência"
1494 1538
1495 -#: src/terminal/properties/init.c:241 1539 +#: src/terminal/properties/init.c:247
1496 msgid "True if the terminal has copy blocks" 1540 msgid "True if the terminal has copy blocks"
1497 msgstr "Verdadeiro se o terminal tiver blocos copiados" 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 msgid "True if the timer indicator is active" 1544 msgid "True if the timer indicator is active"
1501 msgstr "Verdadeiro se indicador de tempo estiver ativo" 1545 msgstr "Verdadeiro se indicador de tempo estiver ativo"
1502 1546
1503 -#: src/filetransfer/transfer.c:84 1547 +#: src/filetransfer/transfer.c:85
1504 msgid "Try again with the same file." 1548 msgid "Try again with the same file."
1505 msgstr "Tente de novo com o mesmo arquivo." 1549 msgstr "Tente de novo com o mesmo arquivo."
1506 1550
@@ -1512,15 +1556,16 @@ msgstr &quot;Turquesa&quot; @@ -1512,15 +1556,16 @@ msgstr &quot;Turquesa&quot;
1512 msgid "UTF-8" 1556 msgid "UTF-8"
1513 msgstr "UTF-8" 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 msgstr "Incapaz de colar dados formatados." 1562 msgstr "Incapaz de colar dados formatados."
1518 1563
1519 #: src/filetransfer/tables.c:92 1564 #: src/filetransfer/tables.c:92
1520 msgid "Undefined" 1565 msgid "Undefined"
1521 msgstr "Indefinido" 1566 msgstr "Indefinido"
1522 1567
1523 -#: src/terminal/callbacks.c:472 1568 +#: src/terminal/callbacks.c:498
1524 #, c-format 1569 #, c-format
1525 msgid "Unexpected callback table, the release %s of lib%s is invalid" 1570 msgid "Unexpected callback table, the release %s of lib%s is invalid"
1526 msgstr "Tabela de callbacks inesperada, a revisão %s da lib%s é inválida" 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,12 +1589,16 @@ msgstr &quot;Estado inesperado %d na operação de impressão&quot;
1544 msgid "Unsecure" 1589 msgid "Unsecure"
1545 msgstr "Insegura" 1590 msgstr "Insegura"
1546 1591
  1592 +#: src/dialogs/windows/select.c:169
  1593 +msgid "Untitled document"
  1594 +msgstr "Documento sem título"
  1595 +
1547 #: src/filetransfer/tables.c:75 1596 #: src/filetransfer/tables.c:75
1548 msgid "Use host default record format." 1597 msgid "Use host default record format."
1549 msgstr "Utilizar o formato de registro padrão do servidor." 1598 msgstr "Utilizar o formato de registro padrão do servidor."
1550 1599
1551 # Tradução copiada do libre-office 1600 # Tradução copiada do libre-office
1552 -#: src/dialogs/settings/clipboard.c:143 1601 +#: src/dialogs/settings/clipboard.c:134
1553 msgid "Use non-breaking Spaces" 1602 msgid "Use non-breaking Spaces"
1554 msgstr "Usar espaço inseparável" 1603 msgstr "Usar espaço inseparável"
1555 1604
@@ -1561,11 +1610,15 @@ msgstr &quot;Variável&quot; @@ -1561,11 +1610,15 @@ msgstr &quot;Variável&quot;
1561 msgid "Western Europe (ISO 8859-1)" 1610 msgid "Western Europe (ISO 8859-1)"
1562 msgstr "Europa ocidental (ISO 8859-1)" 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 msgid "When set allow image formats on clipboard" 1618 msgid "When set allow image formats on clipboard"
1566 msgstr "Quando ativo permite imagens na área de transferência" 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 msgid "" 1622 msgid ""
1570 "When set search clipboard for a similar screen, if found paste unprotected " 1623 "When set search clipboard for a similar screen, if found paste unprotected "
1571 "fields and restore cursor position" 1624 "fields and restore cursor position"
@@ -1573,7 +1626,7 @@ msgstr &quot;&quot; @@ -1573,7 +1626,7 @@ msgstr &quot;&quot;
1573 "Quando ativo pesquisa a área de transferência por uma tela similar, se " 1626 "Quando ativo pesquisa a área de transferência por uma tela similar, se "
1574 "encontrar cola os campos desprotegidos e restaura a posição do cursor" 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 msgid "" 1630 msgid ""
1578 "When set the first copy operation after the selection will set the clipboard " 1631 "When set the first copy operation after the selection will set the clipboard "
1579 "contents and the next ones will append" 1632 "contents and the next ones will append"
@@ -1582,7 +1635,7 @@ msgstr &quot;&quot; @@ -1582,7 +1635,7 @@ msgstr &quot;&quot;
1582 "conteúdo da área de transferência enquanto as operações subsequentes " 1635 "conteúdo da área de transferência enquanto as operações subsequentes "
1583 "adicionam conteúdo" 1636 "adicionam conteúdo"
1584 1637
1585 -#: src/dialogs/settings/clipboard.c:144 1638 +#: src/dialogs/settings/clipboard.c:135
1586 msgid "" 1639 msgid ""
1587 "When set the terminal spaces are exported as non-breaking spaces to prevent " 1640 "When set the terminal spaces are exported as non-breaking spaces to prevent "
1588 "line breaks" 1641 "line breaks"
@@ -1643,7 +1696,7 @@ msgstr &quot;X Sistema&quot; @@ -1643,7 +1696,7 @@ msgstr &quot;X Sistema&quot;
1643 msgid "X Wait" 1696 msgid "X Wait"
1644 msgstr "X Aguarde" 1697 msgstr "X Aguarde"
1645 1698
1646 -#: src/terminal/properties/init.c:146 1699 +#: src/terminal/properties/init.c:136
1647 msgid "XML file with remap table" 1700 msgid "XML file with remap table"
1648 msgstr "Arquivo XML com a tabela para remapeamento de caracteres" 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,7 +1704,7 @@ msgstr &quot;Arquivo XML com a tabela para remapeamento de caracteres&quot;
1651 msgid "Yellow" 1704 msgid "Yellow"
1652 msgstr "Amarelo" 1705 msgstr "Amarelo"
1653 1706
1654 -#: src/dialogs/print/settingsdialog.c:241 1707 +#: src/dialogs/print/settingsdialog.c:243
1655 msgid "You can't add more than one acitivity with the same files." 1708 msgid "You can't add more than one acitivity with the same files."
1656 msgstr "Você não pode adicionar mais de uma operação com os mesmos arquivos" 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,11 +1783,11 @@ msgstr &quot;&quot;
1730 msgid "You specified an option that is invalid." 1783 msgid "You specified an option that is invalid."
1731 msgstr "Você especificou uma opção inválida." 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 msgid "Zoom in" 1787 msgid "Zoom in"
1735 msgstr "Ampliar" 1788 msgstr "Ampliar"
1736 1789
1737 -#: src/terminal/actions/table.c:229 1790 +#: src/terminal/actions/table.c:210
1738 msgid "Zoom out" 1791 msgid "Zoom out"
1739 msgstr "Reduzir" 1792 msgstr "Reduzir"
1740 1793
@@ -1742,29 +1795,29 @@ msgstr &quot;Reduzir&quot; @@ -1742,29 +1795,29 @@ msgstr &quot;Reduzir&quot;
1742 msgid "_ASCII text" 1795 msgid "_ASCII text"
1743 msgstr "Texto _ASCII" 1796 msgstr "Texto _ASCII"
1744 1797
1745 -#: src/dialogs/settings/dialog.c:213 1798 +#: src/dialogs/settings/dialog.c:204
1746 msgid "_Apply" 1799 msgid "_Apply"
1747 msgstr "_Aplicar" 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 msgid "_Cancel" 1807 msgid "_Cancel"
1755 msgstr "_Cancelar" 1808 msgstr "_Cancelar"
1756 1809
1757 -#: src/dialogs/settings/host.c:560 1810 +#: src/dialogs/settings/host.c:561
1758 msgid "_Charset" 1811 msgid "_Charset"
1759 msgstr "Tabela de _Caracteres" 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 msgid "_Close" 1817 msgid "_Close"
1765 msgstr "_Close" 1818 msgstr "_Close"
1766 1819
1767 -#: src/dialogs/settings/host.c:152 1820 +#: src/dialogs/settings/host.c:153
1768 msgid "_Color table" 1821 msgid "_Color table"
1769 msgstr "_Tabela de cores" 1822 msgstr "_Tabela de cores"
1770 1823
@@ -1772,7 +1825,7 @@ msgstr &quot;_Tabela de cores&quot; @@ -1772,7 +1825,7 @@ msgstr &quot;_Tabela de cores&quot;
1772 msgid "_Continue" 1825 msgid "_Continue"
1773 msgstr "_Continuar" 1826 msgstr "_Continuar"
1774 1827
1775 -#: src/trace/tracewindow.c:117 1828 +#: src/trace/tracewindow.c:118
1776 msgid "_File" 1829 msgid "_File"
1777 msgstr "_Arquivo" 1830 msgstr "_Arquivo"
1778 1831
@@ -1788,16 +1841,16 @@ msgstr &quot;_Fonte:&quot; @@ -1788,16 +1841,16 @@ msgstr &quot;_Fonte:&quot;
1788 msgid "_Load" 1841 msgid "_Load"
1789 msgstr "_Carregar" 1842 msgstr "_Carregar"
1790 1843
1791 -#: src/filetransfer/v3270ft.c:334 1844 +#: src/filetransfer/v3270ft.c:335
1792 msgid "_Local file" 1845 msgid "_Local file"
1793 msgstr "Arquivo _local:" 1846 msgstr "Arquivo _local:"
1794 1847
1795 -#: src/dialogs/settings/host.c:180 1848 +#: src/dialogs/settings/host.c:181
1796 msgid "_Model" 1849 msgid "_Model"
1797 msgstr "_Modelo" 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 msgid "_Ok" 1854 msgid "_Ok"
1802 msgstr "_Ok" 1855 msgstr "_Ok"
1803 1856
@@ -1805,19 +1858,19 @@ msgstr &quot;_Ok&quot; @@ -1805,19 +1858,19 @@ msgstr &quot;_Ok&quot;
1805 msgid "_Open" 1858 msgid "_Open"
1806 msgstr "_Abrir" 1859 msgstr "_Abrir"
1807 1860
1808 -#: src/filetransfer/v3270ft.c:333 1861 +#: src/filetransfer/v3270ft.c:334
1809 msgid "_Operation" 1862 msgid "_Operation"
1810 msgstr "_Operação:" 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 msgid "_Paste as text" 1866 msgid "_Paste as text"
1814 msgstr "_Colar como texto" 1867 msgstr "_Colar como texto"
1815 1868
1816 -#: src/filetransfer/v3270ft.c:335 1869 +#: src/filetransfer/v3270ft.c:336
1817 msgid "_Remote file" 1870 msgid "_Remote file"
1818 msgstr "Arquivo _remoto:" 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 #: src/tools/entry.c:168 1874 #: src/tools/entry.c:168
1822 msgid "_Save" 1875 msgid "_Save"
1823 msgstr "_Salvar" 1876 msgstr "_Salvar"
@@ -1826,7 +1879,7 @@ msgstr &quot;_Salvar&quot; @@ -1826,7 +1879,7 @@ msgstr &quot;_Salvar&quot;
1826 msgid "_Text file" 1879 msgid "_Text file"
1827 msgstr "Arquivo _texto" 1880 msgstr "Arquivo _texto"
1828 1881
1829 -#: src/terminal/actions/table.c:230 1882 +#: src/terminal/actions/table.c:211
1830 msgid "decrease the font size" 1883 msgid "decrease the font size"
1831 msgstr "Diminui o tamanho da fonte" 1884 msgstr "Diminui o tamanho da fonte"
1832 1885
@@ -2366,6 +2419,9 @@ msgstr &quot;Diminui o tamanho da fonte&quot; @@ -2366,6 +2419,9 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
2366 #~ msgid "Click to save file" 2419 #~ msgid "Click to save file"
2367 #~ msgstr "Clique para salvar arquivo" 2420 #~ msgstr "Clique para salvar arquivo"
2368 2421
  2422 +#~ msgid "Clipboard properties"
  2423 +#~ msgstr "Configuração da área de transferência"
  2424 +
2369 #~ msgid "Color setup" 2425 #~ msgid "Color setup"
2370 #~ msgstr "Configuração de cores" 2426 #~ msgstr "Configuração de cores"
2371 2427
@@ -2983,6 +3039,9 @@ msgstr &quot;Diminui o tamanho da fonte&quot; @@ -2983,6 +3039,9 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
2983 #~ msgid "Non zero if the host is TSO." 3039 #~ msgid "Non zero if the host is TSO."
2984 #~ msgstr "Diferente de zero se o host é TSO" 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 #~ msgid "Not available" 3045 #~ msgid "Not available"
2987 #~ msgstr "Não disponível" 3046 #~ msgstr "Não disponível"
2988 3047
@@ -3419,15 +3478,16 @@ msgstr &quot;Diminui o tamanho da fonte&quot; @@ -3419,15 +3478,16 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
3419 #~ msgid "Select file to send" 3478 #~ msgid "Select file to send"
3420 #~ msgstr "Selecione arquivo a enviar" 3479 #~ msgstr "Selecione arquivo a enviar"
3421 3480
3422 -#~ msgid "Select font"  
3423 -#~ msgstr "Selecione fonte"  
3424 -  
3425 #~ msgid "Select hostname" 3481 #~ msgid "Select hostname"
3426 #~ msgstr "Selecione host" 3482 #~ msgstr "Selecione host"
3427 3483
3428 #~ msgid "Select() failed when processing for events." 3484 #~ msgid "Select() failed when processing for events."
3429 #~ msgstr "Select() falhou ao processar eventos." 3485 #~ msgstr "Select() falhou ao processar eventos."
3430 3486
  3487 +#, fuzzy
  3488 +#~ msgid "Selection"
  3489 +#~ msgstr "Selecionar"
  3490 +
3431 #~ msgid "Self signed certificate" 3491 #~ msgid "Self signed certificate"
3432 #~ msgstr "Certificado auto assinado" 3492 #~ msgstr "Certificado auto assinado"
3433 3493
@@ -4026,9 +4086,6 @@ msgstr &quot;Diminui o tamanho da fonte&quot; @@ -4026,9 +4086,6 @@ msgstr &quot;Diminui o tamanho da fonte&quot;
4026 #~ msgid "Unsupported socks 4 proxy" 4086 #~ msgid "Unsupported socks 4 proxy"
4027 #~ msgstr "Unsupported socks 4 proxy" 4087 #~ msgstr "Unsupported socks 4 proxy"
4028 4088
4029 -#~ msgid "Untitled document"  
4030 -#~ msgstr "Documento sem título"  
4031 -  
4032 #~ msgid "Uppercase only" 4089 #~ msgid "Uppercase only"
4033 #~ msgstr "Apenas maiúsculas" 4090 #~ msgstr "Apenas maiúsculas"
4034 4091
mac/libv3270.modules 0 → 100644
@@ -0,0 +1,24 @@ @@ -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,7 +34,7 @@
34 #include <v3270.h> 34 #include <v3270.h>
35 #include <lib3270/log.h> 35 #include <lib3270/log.h>
36 #include <v3270/colorscheme.h> 36 #include <v3270/colorscheme.h>
37 - #include "../terminal/marshal.h" 37 + #include <marshal/terminal.h>
38 38
39 #define V3270_COLOR_BASE V3270_COLOR_GRAY+1 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 @@ @@ -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,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 const gchar * text = gtk_entry_get_text(entry); 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,7 +191,7 @@ static void icon_press(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_
191 return; 191 return;
192 192
193 extension++; 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 if(*format == '.') 195 if(*format == '.')
196 format++; 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,9 +30,10 @@
40 /*--[ Constants ]------------------------------------------------------------------------------------*/ 30 /*--[ Constants ]------------------------------------------------------------------------------------*/
41 31
42 enum { 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 GRID_COUNT 38 GRID_COUNT
48 }; 39 };
@@ -52,7 +43,7 @@ @@ -52,7 +43,7 @@
52 .left = 1, 43 .left = 1,
53 .top = 1, 44 .top = 1,
54 .width = 1, 45 .width = 1,
55 - .grid = COPY_SETTINGS, 46 + .grid = SELECT_OPTIONS,
56 .id = LIB3270_TOGGLE_RECTANGLE_SELECT, 47 .id = LIB3270_TOGGLE_RECTANGLE_SELECT,
57 }, 48 },
58 49
@@ -60,7 +51,7 @@ @@ -60,7 +51,7 @@
60 .left = 1, 51 .left = 1,
61 .top = 2, 52 .top = 2,
62 .width = 1, 53 .width = 1,
63 - .grid = COPY_SETTINGS, 54 + .grid = SELECT_OPTIONS,
64 .id = LIB3270_TOGGLE_KEEP_SELECTED, 55 .id = LIB3270_TOGGLE_KEEP_SELECTED,
65 }, 56 },
66 57
@@ -68,7 +59,7 @@ @@ -68,7 +59,7 @@
68 .left = 0, 59 .left = 0,
69 .top = 0, 60 .top = 0,
70 .width = 1, 61 .width = 1,
71 - .grid = PASTE_SETTINGS, 62 + .grid = PASTE_OPTIONS,
72 .id = LIB3270_TOGGLE_MARGINED_PASTE, 63 .id = LIB3270_TOGGLE_MARGINED_PASTE,
73 }, 64 },
74 65
@@ -76,7 +67,7 @@ @@ -76,7 +67,7 @@
76 .left = 0, 67 .left = 0,
77 .top = 1, 68 .top = 1,
78 .width = 1, 69 .width = 1,
79 - .grid = PASTE_SETTINGS, 70 + .grid = PASTE_OPTIONS,
80 .id = LIB3270_TOGGLE_SMART_PASTE, 71 .id = LIB3270_TOGGLE_SMART_PASTE,
81 } 72 }
82 73
@@ -85,7 +76,7 @@ @@ -85,7 +76,7 @@
85 static const struct ComboBoxDefinition combos[] = { 76 static const struct ComboBoxDefinition combos[] = {
86 77
87 { 78 {
88 - .grid = HTML_SETTINGS, 79 + .grid = HTML_OPTIONS,
89 .left = 0, 80 .left = 0,
90 .top = 0, 81 .top = 0,
91 .width = 1, 82 .width = 1,
@@ -102,7 +93,7 @@ @@ -102,7 +93,7 @@
102 }, 93 },
103 94
104 { 95 {
105 - .grid = HTML_SETTINGS, 96 + .grid = HTML_OPTIONS,
106 .left = 0, 97 .left = 0,
107 .top = 1, 98 .top = 1,
108 .width = 1, 99 .width = 1,
@@ -119,7 +110,7 @@ @@ -119,7 +110,7 @@
119 }, 110 },
120 111
121 { 112 {
122 - .grid = COPY_SETTINGS, 113 + .grid = COPY_OPTIONS,
123 .left = 0, 114 .left = 0,
124 .top = 0, 115 .top = 0,
125 .width = 2, 116 .width = 2,
@@ -146,7 +137,7 @@ @@ -146,7 +137,7 @@
146 .top = 2, 137 .top = 2,
147 .width = 1, 138 .width = 1,
148 .height = 1, 139 .height = 1,
149 - .grid = HTML_SETTINGS 140 + .grid = HTML_OPTIONS
150 }, 141 },
151 142
152 { 143 {
@@ -156,27 +147,37 @@ @@ -156,27 +147,37 @@
156 .top = 2, 147 .top = 2,
157 .width = 1, 148 .width = 1,
158 .height = 1, 149 .height = 1,
159 - .grid = PASTE_SETTINGS 150 + .grid = PASTE_OPTIONS
160 }, 151 },
161 152
162 { 153 {
163 .label = N_("Smart copy"), 154 .label = N_("Smart copy"),
164 .tooltip = N_("When set the first copy operation after the selection will set the clipboard contents and the next ones will append"), 155 .tooltip = N_("When set the first copy operation after the selection will set the clipboard contents and the next ones will append"),
165 .left = 1, 156 .left = 1,
166 - .top = 4, 157 + .top = 1,
167 .width = 1, 158 .width = 1,
168 .height = 1, 159 .height = 1,
169 - .grid = COPY_SETTINGS 160 + .grid = COPY_OPTIONS
170 }, 161 },
171 162
172 { 163 {
173 .label = N_("Image copy"), 164 .label = N_("Image copy"),
174 .tooltip = N_("When set allow image formats on clipboard"), 165 .tooltip = N_("When set allow image formats on clipboard"),
175 .left = 1, 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 .top = 3, 177 .top = 3,
177 .width = 1, 178 .width = 1,
178 .height = 1, 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,6 +248,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
247 // Create grids 248 // Create grids
248 { 249 {
249 static const gchar * labels[GRID_COUNT] = { 250 static const gchar * labels[GRID_COUNT] = {
  251 + N_("Select options"),
250 N_("Copy options"), 252 N_("Copy options"),
251 N_("Paste options"), 253 N_("Paste options"),
252 N_("HTML options") 254 N_("HTML options")
@@ -258,23 +260,32 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) { @@ -258,23 +260,32 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
258 int width; 260 int width;
259 } positions[GRID_COUNT] = { 261 } positions[GRID_COUNT] = {
260 { 262 {
  263 + // SELECT_OPTIONS
261 .left = 0, 264 .left = 0,
262 .top = 0, 265 .top = 0,
263 .width = 1 266 .width = 1
264 }, 267 },
265 268
266 { 269 {
267 - .left = 1, 270 + // COPY_OPTIONS
  271 + .left = 1,
268 .top = 0, 272 .top = 0,
269 .width = 1 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 .left = 0, 285 .left = 0,
274 .top = 1, 286 .top = 1,
275 .width = 1 287 .width = 1
276 } 288 }
277 -  
278 }; 289 };
279 290
280 for(ix = 0; ix < G_N_ELEMENTS(labels); ix++) { 291 for(ix = 0; ix < G_N_ELEMENTS(labels); ix++) {
@@ -334,6 +345,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) { @@ -334,6 +345,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
334 345
335 } 346 }
336 347
  348 +/*
337 // Load color schemes 349 // Load color schemes
338 #ifdef DEBUG 350 #ifdef DEBUG
339 { 351 {
@@ -379,7 +391,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) { @@ -379,7 +391,7 @@ static void V3270ClipboardSettings_init(V3270ClipboardSettings *widget) {
379 } 391 }
380 } 392 }
381 #endif // DEBUG 393 #endif // DEBUG
382 - 394 +*/
383 // Copy format combo 395 // Copy format combo
384 static const gchar * copy_formats[] = { 396 static const gchar * copy_formats[] = {
385 N_("Plain text only"), 397 N_("Plain text only"),
@@ -416,7 +428,7 @@ GtkWidget * v3270_clipboard_settings_new() { @@ -416,7 +428,7 @@ GtkWidget * v3270_clipboard_settings_new() {
416 428
417 V3270Settings * settings = GTK_V3270_SETTINGS(g_object_new(V3270ClipboardSettings_get_type(), NULL)); 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 settings->label = _("Clipboard"); 432 settings->label = _("Clipboard");
421 433
422 return GTK_WIDGET(settings); 434 return GTK_WIDGET(settings);
@@ -484,6 +496,7 @@ static void load(GtkWidget *w, GtkWidget *t) { @@ -484,6 +496,7 @@ static void load(GtkWidget *w, GtkWidget *t) {
484 gtk_toggle_button_set_active(widget->input.checkboxes[1],(terminal->selection.options & V3270_SELECTION_SCREEN_PASTE) != 0); 496 gtk_toggle_button_set_active(widget->input.checkboxes[1],(terminal->selection.options & V3270_SELECTION_SCREEN_PASTE) != 0);
485 gtk_toggle_button_set_active(widget->input.checkboxes[2],(terminal->selection.options & V3270_SELECTION_SMART_COPY) != 0); 497 gtk_toggle_button_set_active(widget->input.checkboxes[2],(terminal->selection.options & V3270_SELECTION_SMART_COPY) != 0);
486 gtk_toggle_button_set_active(widget->input.checkboxes[3],(terminal->selection.options & V3270_SELECTION_PIXBUFF) != 0); 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 // Set font combo-box 502 // Set font combo-box
@@ -577,6 +590,12 @@ static void apply(GtkWidget *w, GtkWidget *t) { @@ -577,6 +590,12 @@ static void apply(GtkWidget *w, GtkWidget *t) {
577 terminal->selection.options &= ~V3270_SELECTION_PIXBUFF; 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 // Get font settings 599 // Get font settings
581 switch(get_active_id(widget,0)) { 600 switch(get_active_id(widget,0)) {
582 case '0': 601 case '0':
src/dialogs/settings/colors.c
@@ -381,13 +381,3 @@ static void load(GtkWidget G_GNUC_UNUSED(*w), GtkWidget *terminal) @@ -381,13 +381,3 @@ static void load(GtkWidget G_GNUC_UNUSED(*w), GtkWidget *terminal)
381 381
382 return GTK_WIDGET(settings); 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,7 +30,7 @@
30 */ 30 */
31 31
32 #include "private.h" 32 #include "private.h"
33 - #include "marshal.h" 33 + #include <marshal/dialogs.h>
34 #include <v3270/settings/url.h> 34 #include <v3270/settings/url.h>
35 #include <ctype.h> 35 #include <ctype.h>
36 36
src/dialogs/settings/widget.c
@@ -28,7 +28,7 @@ @@ -28,7 +28,7 @@
28 */ 28 */
29 29
30 #include "../private.h" 30 #include "../private.h"
31 - #include "../terminal/marshal.h" 31 + #include <marshal/terminal.h>
32 #include <internals.h> 32 #include <internals.h>
33 #include <v3270/settings.h> 33 #include <v3270/settings.h>
34 #include <lib3270/log.h> 34 #include <lib3270/log.h>
src/filetransfer/activitylist.c
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 #include <internals.h> 30 #include <internals.h>
31 #include <v3270/dialogs.h> 31 #include <v3270/dialogs.h>
32 #include "private.h" 32 #include "private.h"
33 - #include "marshal.h" 33 + #include <marshal/filetransfer.h>
34 34
35 /*--[ Widget definition ]----------------------------------------------------------------------------*/ 35 /*--[ Widget definition ]----------------------------------------------------------------------------*/
36 36
src/filetransfer/settings.c
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 #include <string.h> 30 #include <string.h>
31 #include <internals.h> 31 #include <internals.h>
32 #include "private.h" 32 #include "private.h"
33 - #include "marshal.h" 33 + #include <marshal/filetransfer.h>
34 #include <v3270/filetransfer.h> 34 #include <v3270/filetransfer.h>
35 35
36 /*--[ Widget definition ]----------------------------------------------------------------------------*/ 36 /*--[ Widget definition ]----------------------------------------------------------------------------*/
src/filetransfer/v3270ftprogress.c
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 */ 36 */
37 37
38 #include "private.h" 38 #include "private.h"
39 - #include "marshal.h" 39 + #include <marshal/filetransfer.h>
40 #include <internals.h> 40 #include <internals.h>
41 #include <lib3270/filetransfer.h> 41 #include <lib3270/filetransfer.h>
42 42
src/filetransfer/worker.c
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 #include <string.h> 30 #include <string.h>
31 #include <internals.h> 31 #include <internals.h>
32 #include "private.h" 32 #include "private.h"
33 - #include "marshal.h" 33 + #include <marshal/filetransfer.h>
34 #include <v3270/filetransfer.h> 34 #include <v3270/filetransfer.h>
35 35
36 /*--[ Widget definition ]----------------------------------------------------------------------------*/ 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 #ifndef V3270_INTERNALS_H_INCLUDED 20 #ifndef V3270_INTERNALS_H_INCLUDED
@@ -121,6 +111,7 @@ @@ -121,6 +111,7 @@
121 // Misc signals 111 // Misc signals
122 // 112 //
123 V3270_SIGNAL_FIRE_ACTION, ///< @brief Fire action by name. 113 V3270_SIGNAL_FIRE_ACTION, ///< @brief Fire action by name.
  114 + V3270_SIGNAL_OPEN_URL, ///< @brief An URL was selected.
124 115
125 V3270_SIGNAL_LAST 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 struct _v3270Class 26 struct _v3270Class
63 { 27 {
@@ -151,14 +115,15 @@ G_BEGIN_DECLS @@ -151,14 +115,15 @@ G_BEGIN_DECLS
151 GtkWidget parent; 115 GtkWidget parent;
152 116
153 // flags 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 /// @brief Action properties. 128 /// @brief Action properties.
164 // GtkResponseType responses[V3270_TOGGLEABLE_DIALOG_CUSTOM]; 129 // GtkResponseType responses[V3270_TOGGLEABLE_DIALOG_CUSTOM];
@@ -238,7 +203,7 @@ G_BEGIN_DECLS @@ -238,7 +203,7 @@ G_BEGIN_DECLS
238 // Blink 203 // Blink
239 struct 204 struct
240 { 205 {
241 - int show : 1; ///< @brief Show element? 206 + unsigned int show : 1; ///< @brief Show element?
242 GSource * timer; ///< @brief Timer source. 207 GSource * timer; ///< @brief Timer source.
243 } blink; 208 } blink;
244 209
src/include/v3270/colorscheme.h
@@ -66,7 +66,6 @@ @@ -66,7 +66,6 @@
66 LIB3270_EXPORT void v3270_color_scheme_set_text(GtkWidget *widget, const gchar *colors); 66 LIB3270_EXPORT void v3270_color_scheme_set_text(GtkWidget *widget, const gchar *colors);
67 67
68 LIB3270_EXPORT GtkWidget * v3270_color_selection_new() G_GNUC_DEPRECATED; 68 LIB3270_EXPORT GtkWidget * v3270_color_selection_new() G_GNUC_DEPRECATED;
69 - LIB3270_EXPORT void v3270_edit_color_table(GtkWidget *terminal);  
70 69
71 G_END_DECLS 70 G_END_DECLS
72 71
src/selection/macos/copy.c 0 → 100644
@@ -0,0 +1,196 @@ @@ -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 @@ @@ -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,7 +124,7 @@ gchar * v3270_convert_to_3270_charset(GtkWidget *widget, const gchar *text, cons
124 124
125 g_autofree gchar *string = g_strdup(text); 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 for(f=0;f<G_N_ELEMENTS(xlat);f++) 128 for(f=0;f<G_N_ELEMENTS(xlat);f++)
129 { 129 {
130 gchar *ptr = g_strstr_len(string,-1,xlat[f].from); 130 gchar *ptr = g_strstr_len(string,-1,xlat[f].from);
src/terminal/actions/clipboard.c
@@ -1,78 +0,0 @@ @@ -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 #include <config.h> 20 #include <config.h>
@@ -55,8 +45,6 @@ @@ -55,8 +45,6 @@
55 45
56 46
57 // Internal methods 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 G_GNUC_INTERNAL int fire_zoom_action(GtkWidget *widget, const V3270_ACTION *action); 48 G_GNUC_INTERNAL int fire_zoom_action(GtkWidget *widget, const V3270_ACTION *action);
61 G_GNUC_INTERNAL int fire_save_action(GtkWidget *widget, const V3270_ACTION *action); 49 G_GNUC_INTERNAL int fire_save_action(GtkWidget *widget, const V3270_ACTION *action);
62 G_GNUC_INTERNAL int fire_print_action(GtkWidget *widget, const V3270_ACTION *action); 50 G_GNUC_INTERNAL int fire_print_action(GtkWidget *widget, const V3270_ACTION *action);
src/terminal/actions/table.c
@@ -26,8 +26,16 @@ @@ -26,8 +26,16 @@
26 26
27 static int fire_copy_as_html(GtkWidget *widget, const struct _v3270_action * action); 27 static int fire_copy_as_html(GtkWidget *widget, const struct _v3270_action * action);
28 static int fire_copy_as_pixbuff(GtkWidget *widget, const struct _v3270_action * action); 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 static int fire_accelerators_dialog(GtkWidget *widget, const struct _v3270_action * action); 34 static int fire_accelerators_dialog(GtkWidget *widget, const struct _v3270_action * action);
30 static int fire_host_dialog(GtkWidget *widget, const struct _v3270_action * action); 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 /*--[ Implement ]------------------------------------------------------------------------------------*/ 40 /*--[ Implement ]------------------------------------------------------------------------------------*/
33 41
@@ -328,11 +336,37 @@ @@ -328,11 +336,37 @@
328 .group = LIB3270_ACTION_GROUP_OFFLINE, 336 .group = LIB3270_ACTION_GROUP_OFFLINE,
329 .name = "dialog-host", 337 .name = "dialog-host",
330 .icon = "network-server", 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 .activate = fire_host_dialog 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 // Terminator 371 // Terminator
338 // 372 //
@@ -355,7 +389,7 @@ @@ -355,7 +389,7 @@
355 return 0; 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 GtkWidget * dialog = 394 GtkWidget * dialog =
361 v3270_settings_popup_dialog( 395 v3270_settings_popup_dialog(
@@ -370,8 +404,7 @@ @@ -370,8 +404,7 @@
370 return 0; 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 gtk_widget_show_all( 408 gtk_widget_show_all(
376 v3270_settings_popup_dialog( 409 v3270_settings_popup_dialog(
377 v3270_host_settings_new(), 410 v3270_host_settings_new(),
@@ -379,49 +412,78 @@ @@ -379,49 +412,78 @@
379 TRUE 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 return 0; 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 #include <config.h> 20 #include <config.h>
@@ -85,23 +75,34 @@ static void update_toggle(H3270 *session, LIB3270_TOGGLE_ID id, unsigned char va @@ -85,23 +75,34 @@ static void update_toggle(H3270 *session, LIB3270_TOGGLE_ID id, unsigned char va
85 v3270_update_toggle((GtkWidget *) lib3270_get_user_data(session), id, value, name); 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 v3270_signal_emit( 89 v3270_signal_emit(
93 terminal, 90 terminal,
94 V3270_SIGNAL_MESSAGE_CHANGED, 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 return FALSE; 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 static void update_luname(H3270 *session, const char G_GNUC_UNUSED(*name)) 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,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 static int print(H3270 *session, LIB3270_CONTENT_OPTION mode) 280 static int print(H3270 *session, LIB3270_CONTENT_OPTION mode)
295 { 281 {
296 return v3270_print_dialog(GTK_WIDGET(lib3270_get_user_data(session)), mode, NULL); 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,27 +312,6 @@ static int load(H3270 *session, const char *filename)
326 return 0; 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 static gboolean bg_update_ssl(H3270 *session) 315 static gboolean bg_update_ssl(H3270 *session)
351 { 316 {
352 v3270 *terminal = GTK_V3270(lib3270_get_user_data(session)); 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,8 +336,6 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
371 336
372 static void update_ssl(H3270 *session, G_GNUC_UNUSED LIB3270_SSL_STATE state) 337 static void update_ssl(H3270 *session, G_GNUC_UNUSED LIB3270_SSL_STATE state)
373 { 338 {
374 - debug("----------------------> %d", (int) state);  
375 -  
376 g_idle_add((GSourceFunc) bg_update_ssl, session); 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,6 +413,80 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
450 return 0; 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 void v3270_install_callbacks(v3270 *widget) 490 void v3270_install_callbacks(v3270 *widget)
454 { 491 {
455 struct lib3270_session_callbacks *cbk; 492 struct lib3270_session_callbacks *cbk;
@@ -505,6 +542,7 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title @@ -505,6 +542,7 @@ static void popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title
505 cbk->popup = popup; 542 cbk->popup = popup;
506 cbk->action = action; 543 cbk->action = action;
507 cbk->reconnect = reconnect; 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 @@ @@ -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 @@ @@ -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 #include "private.h" 20 #include "private.h"
@@ -147,6 +137,10 @@ @@ -147,6 +137,10 @@
147 g_value_set_boolean(value,window->timer != NULL); 137 g_value_set_boolean(value,window->timer != NULL);
148 break; 138 break;
149 139
  140 + case V3270_PROPERTY_OPEN_URL:
  141 + g_value_set_boolean(value,window->open_url != 0);
  142 + break;
  143 +
150 default: 144 default:
151 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 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 #include "private.h" 20 #include "private.h"
@@ -170,6 +160,22 @@ @@ -170,6 +160,22 @@
170 spec 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 // Lu names 179 // Lu names
174 spec = 180 spec =
175 g_param_spec_string( 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 #ifdef WIN32 20 #ifdef WIN32
@@ -60,8 +50,9 @@ @@ -60,8 +50,9 @@
60 V3270_PROPERTY_SELECTION_OPTIONS = 11, 50 V3270_PROPERTY_SELECTION_OPTIONS = 11,
61 V3270_PROPERTY_HAS_COPY = 12, ///< @brief Terminal has copy. 51 V3270_PROPERTY_HAS_COPY = 12, ///< @brief Terminal has copy.
62 V3270_PROPERTY_HAS_TIMER = 13, ///< @brief Timer indicator state. 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 G_GNUC_INTERNAL void v3270_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); 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 #include "private.h" 20 #include "private.h"
@@ -143,6 +133,10 @@ @@ -143,6 +133,10 @@
143 GTK_V3270(object)->selection.options = (V3270SelectionOption) g_value_get_uint(value); 133 GTK_V3270(object)->selection.options = (V3270SelectionOption) g_value_get_uint(value);
144 break; 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 default: 140 default:
147 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); 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 #include <config.h> 20 #include <config.h>
31 #include <terminal.h> 21 #include <terminal.h>
32 - #include "marshal.h" 22 + #include <marshal/terminal.h>
33 23
34 #include <lib3270.h> 24 #include <lib3270.h>
35 #include <lib3270/log.h> 25 #include <lib3270/log.h>
@@ -63,6 +53,7 @@ @@ -63,6 +53,7 @@
63 /// @brief Persistent properties (load/save from session file). 53 /// @brief Persistent properties (load/save from session file).
64 static const gchar *persistent_properties[] = { 54 static const gchar *persistent_properties[] = {
65 "url", 55 "url",
  56 + "open-url",
66 "model-number", 57 "model-number",
67 "oversize", 58 "oversize",
68 "host-charset", 59 "host-charset",
@@ -537,6 +528,15 @@ static void finalize(GObject *object) { @@ -537,6 +528,15 @@ static void finalize(GObject *object) {
537 v3270_UINT__POINTER, 528 v3270_UINT__POINTER,
538 G_TYPE_UINT, 1, G_TYPE_POINTER); 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 v3270_widget_signal[V3270_SIGNAL_SAVE_POPUP_RESPONSE] = 540 v3270_widget_signal[V3270_SIGNAL_SAVE_POPUP_RESPONSE] =
541 g_signal_new( I_("save-popup-response"), 541 g_signal_new( I_("save-popup-response"),
542 G_OBJECT_CLASS_TYPE (gobject_class), 542 G_OBJECT_CLASS_TYPE (gobject_class),
src/testprogram/toolbar.c
@@ -198,11 +198,6 @@ @@ -198,11 +198,6 @@
198 v3270_clipboard_set(terminal,V3270_COPY_TEXT,FALSE); 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 static void zoom_in_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal) 201 static void zoom_in_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *terminal)
207 { 202 {
208 v3270_zoom_in(terminal); 203 v3270_zoom_in(terminal);
@@ -228,12 +223,12 @@ @@ -228,12 +223,12 @@
228 GCallback callback; 223 GCallback callback;
229 const gchar * tooltip; 224 const gchar * tooltip;
230 } buttons[] = { 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 { "document-save", G_CALLBACK(save_clicked), "Save screen or selection" }, 232 { "document-save", G_CALLBACK(save_clicked), "Save screen or selection" },
238 { "document-open", G_CALLBACK(load_clicked), "Paste file" }, 233 { "document-open", G_CALLBACK(load_clicked), "Paste file" },
239 { "dialog-information", G_CALLBACK(popup_clicked), "Show test popup" }, 234 { "dialog-information", G_CALLBACK(popup_clicked), "Show test popup" },
@@ -242,7 +237,7 @@ @@ -242,7 +237,7 @@
242 237
243 // { "network-server", G_CALLBACK(host_clicked), "Configure host" }, 238 // { "network-server", G_CALLBACK(host_clicked), "Configure host" },
244 // { "preferences-desktop-font", G_CALLBACK(font_clicked), "Select font" }, 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 { "zoom-in", G_CALLBACK(zoom_in_clicked), "Zoom in" }, 243 { "zoom-in", G_CALLBACK(zoom_in_clicked), "Zoom in" },
src/trace/trace.c
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 #include <lib3270/properties.h> 43 #include <lib3270/properties.h>
44 #include <internals.h> 44 #include <internals.h>
45 #include <v3270/dialogs.h> 45 #include <v3270/dialogs.h>
46 - #include "marshal.h" 46 + #include <marshal/trace.h>
47 47
48 /*--[ Globals ]--------------------------------------------------------------------------------------*/ 48 /*--[ Globals ]--------------------------------------------------------------------------------------*/
49 49