If anybody has Iwidgets 4, they might try this script. It's just a tabbed notebook with a few other widgets added (entry fields, disjoint listbox). The point is, pascal is an organized language, and a virtual notebook might help organize development. Certainly, text processing is yet to be added. Maybe the "diff debate" could be presented on a page.
#!/bin/sh #\ exec wish "$0" package require Iwidgets 4.0
# ---------------------------------------------------------------------- # create tabnotebook # ----------------------------------------------------------------------
option add *textBackground white option add *Tabnotebook.backdrop DimGray option add *Scale.width 8 . configure -background white
wm title . "T-pascal"
iwidgets::tabnotebook .tnb \ -width 8i \ -height 10i \ -tabpos w \ -gap 10 \ -background seashell \ -font "helvetica 14"
pack .tnb \ -expand yes \ -fill both \ -padx 4 -pady 4
# create Summary CoverPage # ---------------------------------------------------------------------- set page1 [.tnb add -label "Cover Page"]
# put widgets in cover page
frame $page1.filler1 \ -background "" \ -height 1i \ -width 5i
pack $page1.filler1 \ -fill x
iwidgets::entryfield $page1.unit_name \ -labeltext "Pascal Unit Name:" \ -labelfont "helvetica 14" \ -textfont "helvetica 14" \ -labelpos nw \ -background tan \ -width 50
pack $page1.unit_name \ -pady 5
iwidgets::entryfield $page1.unit_info \ -labeltext "Pascal Unit Info:" \ -labelfont "helvetica 14" \ -textfont "helvetica 14" \ -labelpos nw \ -background tan \ -width 50
pack $page1.unit_info \ -pady 5
iwidgets::entryfield $page1.unit_path \ -labeltext "Pascal Unit Path:" \ -labelfont "helvetica 14" \ -textfont "helvetica 14" \ -labelpos nw \ -background tan \ -width 50
pack $page1.unit_path \ -pady 5
frame $page1.filler2 \ -background "" \ -height 1i \ -width 5i
pack $page1.filler2 \ -fill x
iwidgets::entryfield $page1.c_lib_name \ -labeltext "C Library Name:" \ -labelfont "helvetica 14" \ -textfont "helvetica 14" \ -labelpos nw \ -background tan \ -width 50
pack $page1.c_lib_name \ -pady 5
iwidgets::entryfield $page1.c_lib_info \ -labeltext "C Library Info:" \ -labelfont "helvetica 14" \ -textfont "helvetica 14" \ -labelpos nw \ -background tan \ -width 50
pack $page1.c_lib_info \ -pady 5
iwidgets::entryfield $page1.c_lib_path \ -labeltext "C Library Path:" \ -labelfont "helvetica 14" \ -textfont "helvetica 14" \ -labelpos nw \ -background tan \ -width 50
pack $page1.c_lib_path \ -pady 5
frame $page1.filler3 \ -background "" \ -height 1i \ -width 5i
pack $page1.filler3 \ -fill x
iwidgets::entryfield $page1.author \ -labeltext "Author:" \ -labelpos nw \ -width 40
pack $page1.author
iwidgets::entryfield $page1.author_email \ -labeltext "Author E-mail:" \ -labelpos nw \ -width 40
pack $page1.author_email
frame $page1.filler4 \ -background "" \ -height 1i \ -width 5i
pack $page1.filler4 \ -fill x
# create more pages # ----------------------------------------------------------------------
set page2 [.tnb add -label "Compile Options"]
iwidgets::disjointlistbox $page2.dlb pack $page2.dlb -padx 10 -pady 10 -fill both -expand yes
$page2.dlb insertlhs {{1. DOS} {2. WINDOWS} {3. LINUX} {4. OSX} {5. SOLARIS} {6. IA32} {7. IA64} {8. M68X} {9. SPARC}}
set page3 [.tnb add -label "Unit .inc Files"]
# Unit Constants Page #4 # ---------------------------------------------------------------------- set page4 [.tnb add -label "Unit Constants"]
iwidgets::scrolledtext $page4.scr_text \ -hscrollmode dynamic \ -vscrollmode dynamic
pack $page4.scr_text \ -expand yes \ -fill both
# Unit Types Page #5 # ----------------------------------------------------------------------
set page5 [.tnb add -label "Unit Types"]
.tnb view "Cover Page"
# End ---------------------------------------------------------------