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 | ... | ... |