Changeset 986 for trunk/gsascmds.tcl


Ignore:
Timestamp:
Apr 21, 2010 2:42:21 PM (11 years ago)
Author:
toby
Message:

tkcon fixes; implement gnome-terminal if xterm is not found

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsascmds.tcl

    r985 r986  
    27112711    }
    27122712} else {
    2713     # this creates a xterm window to run a program in
    2714     proc forknewterm {title command "wait 1" "scrollbar 1"} {
    2715         global env expgui
    2716         # UNIX environment variables
    2717         set env(GSAS) [file nativename $expgui(gsasdir)]
    2718         set env(gsas) [file nativename $expgui(gsasdir)]
    2719         set env(GSASEXE) $expgui(gsasexe)
    2720         set env(ATOMDATA) [file join $expgui(gsasdir) data atmdata.dat]
    2721         set env(ATMXSECT) [file join $expgui(gsasdir) data atmxsect.dat]
    2722         # PGPLOT_DIR is needed by PGPLOT
    2723         set env(PGPLOT_DIR) $expgui(pgplotdir)
    2724         # this is the number of lines/page in the .LST (etc.) file
    2725         set env(LENPAGE) 60
    2726         set termopts {}
    2727         if $env(GSASBACKSPACE) {
    2728             append termopts \
     2713    # UNIX-based machines
     2714    if {[auto_execok xterm] != ""} {
     2715        # this creates a xterm window for running programs inside
     2716        proc forknewterm {title command "wait 1" "scrollbar 1"} {
     2717            global env expgui
     2718            # UNIX environment variables
     2719            set env(GSAS) [file nativename $expgui(gsasdir)]
     2720            set env(gsas) [file nativename $expgui(gsasdir)]
     2721            set env(GSASEXE) $expgui(gsasexe)
     2722            set env(ATOMDATA) [file join $expgui(gsasdir) data atmdata.dat]
     2723            set env(ATMXSECT) [file join $expgui(gsasdir) data atmxsect.dat]
     2724            # PGPLOT_DIR is needed by PGPLOT
     2725            set env(PGPLOT_DIR) $expgui(pgplotdir)
     2726            # this is the number of lines/page in the .LST (etc.) file
     2727            set env(LENPAGE) 60
     2728            set termopts {}
     2729            if $env(GSASBACKSPACE) {
     2730                append termopts \
    27292731                    {-xrm "xterm*VT100.Translations: #override\\n <KeyPress>BackSpace: string(\\177)"}
    2730         }
    2731         if $scrollbar {
    2732             append termopts " -sb"
    2733         } else {
    2734             append termopts " +sb"
    2735         }
    2736         if {$wait} {
    2737             set suffix {}
    2738         } else {
    2739             set suffix {&}
    2740         }
    2741 
    2742         # hold window open after commands finish
    2743         if {$expgui(execprompt)} {
    2744             append command "\; echo -n Press Enter to continue \; read x"
    2745         }
    2746         if {$wait && $expgui(autoiconify)} {wm iconify .}
    2747         catch {eval exec xterm $termopts -title [list $title] \
    2748                 -e /bin/sh -c [list $command] $suffix} errmsg
    2749         if $expgui(debug) {puts "xterm result = $errmsg"}
    2750         if {$expgui(MacroRunning)} {
    2751             update
    2752             update idletasks
    2753         }
    2754         if {$wait} {
    2755             if {$expgui(autoiconify)} {wm deiconify .}
    2756             # check for changes in the .EXP file immediately
    2757             whenidle
    2758         }
     2732            }
     2733            if $scrollbar {
     2734                append termopts " -sb"
     2735            } else {
     2736                append termopts " +sb"
     2737            }
     2738            if {$wait} {
     2739                set suffix {}
     2740            } else {
     2741                set suffix {&}
     2742            }
     2743           
     2744            # hold window open after commands finish
     2745            if {$expgui(execprompt)} {
     2746                append command "\; echo -n Press Enter to continue \; read x"
     2747            }
     2748            if {$wait && $expgui(autoiconify)} {wm iconify .}
     2749            catch {eval exec xterm $termopts -title [list $title] \
     2750                       -e /bin/sh -c [list $command] $suffix} errmsg
     2751            if $expgui(debug) {puts "xterm result = $errmsg"}
     2752            if {$expgui(MacroRunning)} {
     2753                update
     2754                update idletasks
     2755            }
     2756            if {$wait} {
     2757                if {$expgui(autoiconify)} {wm deiconify .}
     2758                # check for changes in the .EXP file immediately
     2759                whenidle
     2760            }
     2761        }
     2762    } elseif {[auto_execok gnome-terminal] != ""} {
     2763        # this creates a xterm window for running programs inside
     2764        proc forknewterm {title command "wait 1" "scrollbar 1"} {
     2765            global env expgui
     2766            # UNIX environment variables
     2767            set env(GSAS) [file nativename $expgui(gsasdir)]
     2768            set env(gsas) [file nativename $expgui(gsasdir)]
     2769            set env(GSASEXE) $expgui(gsasexe)
     2770            set env(ATOMDATA) [file join $expgui(gsasdir) data atmdata.dat]
     2771            set env(ATMXSECT) [file join $expgui(gsasdir) data atmxsect.dat]
     2772            # PGPLOT_DIR is needed by PGPLOT
     2773            set env(PGPLOT_DIR) $expgui(pgplotdir)
     2774            # this is the number of lines/page in the .LST (etc.) file
     2775            set env(LENPAGE) 60
     2776            if {$wait} {
     2777                set suffix {}
     2778            } else {
     2779                set suffix {&}
     2780            }
     2781           
     2782            # hold window open after commands finish
     2783            if {$expgui(execprompt)} {
     2784                append command "\; echo -n Press Enter to continue \; read x"
     2785            }
     2786            if {$wait && $expgui(autoiconify)} {wm iconify .}
     2787            catch {exec gnome-terminal --title $title \
     2788                       -e " /bin/sh -c \" $command \" " $suffix} errmsg
     2789            if $expgui(debug) {puts "gnome-terminal result = $errmsg"}
     2790            if {$expgui(MacroRunning)} {
     2791                update
     2792                update idletasks
     2793            }
     2794            if {$wait} {
     2795                if {$expgui(autoiconify)} {wm deiconify .}
     2796                # check for changes in the .EXP file immediately
     2797                whenidle
     2798            }
     2799        }
     2800    } else {
     2801        MyMessageBox -parent . -title "Error: no terminal program" \
     2802            -message "Error, the xterm or gnome-terminal utility programs could not be found. It is not possible to run the GSAS programs without this." \
     2803            -icon error -type NOT-OK -default not-ok
    27592804    }
    27602805}
Note: See TracChangeset for help on using the changeset viewer.