summaryrefslogtreecommitdiff
path: root/src/gdialog
diff options
context:
space:
mode:
authorJeremy Bicha <jbicha@debian.org>2021-09-19 08:31:04 -0400
committerJeremy Bicha <jbicha@debian.org>2021-09-19 08:31:04 -0400
commit8be77dbb38d2d96e66cadc38a9adb30f161c7ad0 (patch)
treed6d626e993d2ba4c301cb27346022e568d965c21 /src/gdialog
parentNew upstream version 3.32.0 (diff)
parentBump version for 3.41.0 (diff)
downloadzenity-8be77dbb38d2d96e66cadc38a9adb30f161c7ad0.tar.gz
zenity-8be77dbb38d2d96e66cadc38a9adb30f161c7ad0.tar.bz2
zenity-8be77dbb38d2d96e66cadc38a9adb30f161c7ad0.zip
New upstream version 3.41.0
Diffstat (limited to 'src/gdialog')
-rw-r--r--src/gdialog353
1 files changed, 0 insertions, 353 deletions
diff --git a/src/gdialog b/src/gdialog
deleted file mode 100644
index 4e2da777..00000000
--- a/src/gdialog
+++ /dev/null
@@ -1,353 +0,0 @@
-#!/usr/bin/perl
-
-# gdialog -> zenity conversion wrapper
-#
-# by Mike Newman <mikegtn@gnome.org>
-#
-# This is all, of course, horrible - but it should translate
-# most commond gdialog types to zenity equivalents. It will mostly drop
-# the pointless and unused (even by gdialog!) size arguments
-# but hopefully will translate all the others.
-#
-# For testing purposes, I've used a couple of the nautilus scripts
-# available at http://g-scripts.sourceforge.net - what is sometimes
-# unclear is what is a gdialog/zenity translation problem, and what is
-# a problem with the original script
-
-my @command = ("zenity"); # the command line we build up to execute
-my $element = ""; # current bit of command line
-my $argn = 0; # counter for walking args
-my $args = $#ARGV + 1; # total number of command line arguments
-my $separator = 0; # set if --separate-output is in use
-
-
-# Additon by: Kevin C. Krinke (kck) <kckrinke@opendoorsoftware.com>
-#
-# gdialog itself supports both the X-Windows interface as well as a console
-# interface. Here's a fix to use regular dialog when appropriate.
-# This should probably be a more advanced test of some sort, but I don't know
-# of any other easy way of detecting and X-Windows environment. If someone does
-# know better, please let me know. So for now this works: "no DISPLAY; no X".
-
-unless (defined $ENV{'DISPLAY'} && length($ENV{'DISPLAY'})) {
-
- # reset the command string
-
- @command = ();
-
- # examine all the available/default paths
-
- my $PATHS = ($ENV{'PATH'}||'/bin:/usr/bin:/usr/local/bin:/opt/bin');
-
- BIN: foreach my $PATH (split(/\:/,$PATHS)) {
-
- if (-x $PATH."/gdialog.real") {
-
- # Some GNU/Linux distributions divert binaries when
- # other packages are installed. If this exists, chances
- # are it's the real gdialog and not the Zenity wrapper.
- # gdialog has full support for the Console medium and
- # as such is the preference over using the "regular"
- # dialog interface.
-
- @command = ($PATH."/gdialog.real");
- last BIN;
-
- } elsif (-x $PATH."/dialog") {
-
- # change the command and skip ahead!
-
- @command = ($PATH."/dialog");
- last BIN;
-
- }
-
-
- }
-
- unless (@command) {
-
- # we didn't find the dialog binary, exit(254) with a message
- # to STDERR.
-
- print STDERR "missing DISPLAY and a console dialog could".
- " not be found.\n";
-
- # exit code 254 is used because 255, 1, 2, 3 are used by Zenity
- # and cDialog. This error, is a very _bad_ error so it's semi-
- # non-standard at 254.
-
- exit(254);
-
- }
-
- # all is well if we've made it this far
-
- # so join the arguments double-quoting things so that proper shell
- # notation is saved.
-
- push @command, @ARGV;
-
- # and fork the process
-
- exec(@command);
-
-}
-
-# Got DISPLAY, has X continue as normal...
-# End Addtition by: KCK
-
-# this just loads the current arg into $element
-
-sub get_arg () {
- $element = $ARGV[$argn];
-}
-
-# walk the command line
-
-ARG: while ($argn < $args) {
-
- get_arg;
-
-# Informational stuff
-
- if ($element eq "--help" || $element eq "--about") {
- print ( "gdialog is a compatibility wrapper around zenity, " .
- "provided to hopefully\nallow older scripts to run. " .
- "If you are reading this message, you should\n" .
- "probably be using zenity directly\n\n" .
- "type: 'zenity --help' or 'man zenity' for more information\n");
- exit (1);
- }
-
-# Section 1 : Args which gdialog expects BEFORE box options
-# --clear, --backtitle have no obvious effect - ignored
-
- if ($element eq "--title") {
-
- # --title argument is almost analogous in gdialog and
- # zenity - so pass it almost entirely as is
-
- $argn++;
- get_arg;
- push @command, "--title=$element";
-
- # keep processing args
- $argn++;
- next ARG;
- }
-
- if ($element eq "--separate-output") {
-
- # set the flag to pring list output line by line
- $separator = 1;
-
- # keep processing args
- $argn++;
- next ARG;
- }
-
-# Section 2 : Box Options and subsequent args
-
- if ($element eq "--msgbox" || $element eq "--infobox") {
-
- # This bit is common to almost all of the dialogs
- # the arg following the dialog type in gdialog is usually
- # equivalent to zenity's --text arg.
-
- $argn++;
- get_arg;
- push @command, "--info", "--text=$element";
-
- # this also happens a lot - gdialog accepted size args
- # for dialog compatability - which it pretty much ignored
- # and we will do the same
-
- $argn+=2;
- last ARG;
- }
-
- if ($element eq "--yesno") {
-
- # this will silently ignore the gdialog option to set
- # the default button in question dialogs - which is
- # highly hig-norant anyway!
-
- $argn++;
- get_arg;
- push @command, "--question", "--text=$element";
- last ARG;
- }
-
- if ($element eq "--inputbox") {
- $argn++;
- get_arg;
- push @command, "--entry", "--text=$element";
-
- # ignore size elements and maybe there is some
- # default text to initialize the entry with?
-
- $argn+=3;
- get_arg;
- push @command, "--entry-text=$element";
- last ARG;
- }
-
- if ($element eq "--textbox") {
- push @command, "--text-info";
-
- # the arg immediately following the dialog type in
- # gdialog is the filename, so pass this to zenity
-
- $argn++;
- get_arg;
- push @command, "--filename=$element";
-
- # width and height matter for this one, so get them
- # and apply the same multipliers as used in gdialog
-
- $argn++;
- get_arg;
- $element = $element * 7;
- push @command, "--height=$element";
- $argn++;
- get_arg;
- $element = $element * 8;
- push @command, "--width=$element";
- last ARG;
- }
-
- if ($element eq "--checklist" || $element eq "--radiolist") {
- $list=$element;
- $argn++;
- get_arg;
-
- # Conveniently, zenity and gdialog use the same names
- # for list types, so pass this to zenity intact along with
- # an untitled column for the check or radio buttons
- # and the 'text' arg as a second column header
-
- push @command, "--list", $list, "--column=''", "--column=''", "--column", $element;
-
- # should output be line by line?
- if ($separator) {
- push @command, "--separator=\n";
- }
-
- # Skip to the first 'item' arg of the list content
- # bypassing height, width and list-height
- # from here args run [tag] [item] [status] ...
-
- $argn += 4;
-
- # Loop over the remainder of the commandline
- # discarding the 'status' args of each item
- # and using the 'item' for display in our second column
- # also pass a fake NULL argument since zenity can't set
- # the status of a row like gdialog can
-
- while ($argn < $args) {
- get_arg;
- push @command, "NULL", $element;
- $argn += 1;
- get_arg;
- push @command, $element;
- $argn += 2;
- }
- last ARG;
- }
-
- if ($element eq "--menu") {
- $list=$element;
- $argn++;
- get_arg;
-
- # a gdialog --menu is just a two column zenity --list
- # Leave the first column blank (not provided)
- # Use the 'text' arg as a second column header
- # FIXME: or should it be the dialog text, or both?
-
- push @command, "--list", "--column", "", "--column", $element;
-
- # Skip to the first 'item' arg of the list content
- # after using height, width and bypassing list-height
- # from here args run [tag] [item] ...
-
- $argn += 1;
-
- get_arg;
- # Height and width in characters to be displayed, so adjust
- # cdialog uses 6 height for non-list, zenity uses ~24 pixels
- # per list entry (default font), and 103 pixels for non-list
- # This appears to be almost exact
- $element = $element*24 - 35;
- push @command, "--height", $element;
-
- $argn += 1;
- get_arg;
- # cdialog uses 6 width for non-list, zenity uses ~7 pixels
- # per character (default font), and 22 pixels for non-list
- # This is not exact, but close enough
- $element = $element*7 - 20;
- push @command, "--width", $element;
-
- $argn += 2;
-
- # Loop over the remainder of the commandline
- # keeping 'tag' args of each item (required to return)
- # and using the 'item' for display in our second column
-
- while ($argn < $args) {
- get_arg;
- push @command, $element;
- $argn += 1;
- }
- last ARG;
- }
-
- if ($element eq "--gauge") {
- $argn++;
- get_arg;
- push @command, "--progress", "--text=$element";
-
- # discard the size args as usually, and see if
- # a percentage value was supplied to initialize the
- # dialog
-
- $argn += 3;
- get_arg;
- if ($element) {
- push @command, "--percentage=$element";
- }
- last ARG;
- }
-
- $argn++;
-}
-
-# save STDOUT and STDERR
-open(ORG_STDOUT, ">&STDOUT");
-open(ORG_STDERR, ">&STDERR");
-
-# redirect STDERR to /dev/null (GTK messages ie:
-# (zenity:637): Gtk-WARNING **: Unable to locate theme engine in module_path: "mist",)
-open(STDERR, ">/dev/null");
-
-# redirect STDOUT to STDERR (gdialog direct output to STDERR by default)
-open(STDOUT, ">&ORG_STDERR");
-
-# execute the constructed zenity command line
-
-# perl doc: The return value of system() is the exit status of the
-#program as returned by the wait() call. To get the actual exit value
-# divide by 256.
-
-my $return = system(@command)/256;
-
-# restore STDOUT and STDERR
-open(STDOUT, ">&ORG_STDOUT");
-open(STDERR, ">&ORG_STDERR");
-close(ORG_STDOUT);
-close(ORG_STDERR);
-
-exit $return;
bgstack15