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