home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / tcl / xf2.3-p / xf2 / xf2.3 / src / xfprocMain.tcl < prev    next >
Encoding:
Text File  |  1993-12-26  |  2.7 KB  |  97 lines

  1. # Program: xf
  2. # Description: procedures that implement the top level functionality
  3. #
  4. # $Header: xfprocMain.tcl[2.4] Wed Mar 10 12:07:55 1993 garfield@garfield frozen $
  5.  
  6. proc XFProcMain {} {
  7. ##########
  8. # Procedure: XFProcMain
  9. # Description: show the main edit window
  10. # Arguments: none
  11. # Returns: none
  12. # Sideeffects: none
  13. ##########
  14.   global xfConf
  15.   global xfPath
  16.   global xfStatus
  17.  
  18.   # set toplevel wm maxsize
  19.   if {"[lindex [wm maxsize .] 0]" == "" && \
  20.       "[lindex [wm maxsize .] 1]" == ""} {
  21.     wm maxsize . [winfo screenwidth .] [winfo screenheight .]
  22.   }
  23.   if {$xfConf(autoRootPos)} {
  24.     # prevent the placing of the decoration outside of the window...
  25.     # temporarily bug fix
  26.     wm geometry . +10+10
  27.   }
  28.  
  29.   # erase error protocol
  30.   catch "rm -f $xfPath(tmp)/xferrors$xfStatus(uniqueId)"
  31.  
  32.   # new global bindings
  33.   XFMiscBindWidgetTree .
  34.  
  35.   if {"[info commands tkerror]" == "" ||
  36.       ("[info commands tkerror]" != "" &&
  37.        "[string trim [info body tkerror]]" == "global errorInfo
  38.     puts stdout \"\$errorInfo\"")} {
  39.     catch "proc tkerror {errMessage} {
  40.              global errorInfo
  41.              set errInfo \$errorInfo
  42.              puts stdout \"\$errInfo\"
  43.              if {\"\[info commands XFMiscSaveError\]\" != \"\"} {
  44.                XFMiscSaveError \$errMessage \$errInfo
  45.              }
  46.            }"
  47.   }
  48.  
  49.   # wrapper around exit
  50.   rename exit XFExit
  51.   catch "proc exit args {
  52.            global xfAlertBox
  53.            if {\"\[info commands .xfEdit\]\" != \"\"} {
  54.              if {\[llength \$args\] > 0} {
  55.                set xfAlertBox(toplevelName) .exit
  56.                XFProcMessage \"Exit the program with: \[lindex \$args 0\]\" 250x100 \"Exit\" center {}
  57.                set xfAlertBox(toplevelName) .xfAlertBox
  58.              } {
  59.                set xfAlertBox(toplevelName) .exit
  60.                XFProcMessage \"Exit the program\" 250x100 \"Exit\" center {}
  61.                set xfAlertBox(toplevelName) .xfAlertBox
  62.              }
  63.            } {
  64.              catch \"XFExit \$args\"
  65.            }
  66.          }"
  67.  
  68.   # wrapper around destroy
  69.   rename destroy XFDestroy
  70.   catch "proc destroy xfArgs {
  71.            if {\"\[info commands .xfEdit\]\" != \"\"} {
  72.              if {\[string match \".xf*\" \$xfArgs\] ||
  73.                  \[string match \"xf*\" \[winfo name \$xfArgs\]\]} {
  74.                XFDestroy \$xfArgs
  75.              } {
  76.                if {\[XFProcYesNo \"Destroy widget:\$xfArgs
  77. really destroy ???\"\]} {
  78.                  XFDestroy \$xfArgs
  79.                }
  80.              }
  81.            } {
  82.              XFDestroy \$xfArgs
  83.            }
  84.          }"
  85.  
  86.   # show main edit window
  87.   XFEdit
  88.  
  89.   # start autosaving
  90.   if {$xfConf(saveInterval) > 0} {
  91.     after [expr $xfConf(saveInterval)*60000] XFMiscAutoSave $xfConf(saveInterval)
  92.   }
  93. }
  94.  
  95. # eof
  96.  
  97.