# ------------------------------------------------------------------------ # initialize the ::guib namespace and set the library & version variables # ------------------------------------------------------------------------ # ------------------------------------------------------------------------ # load Tcl/Tk + [Incr Tcl]/[Incr Tk]/[Incr Widgets] # ------------------------------------------------------------------------ package require Tk #package require Itcl if { [catch {package require Itk}] } { package require itk } package require Iwidgets # We need to import all of the itcl functions into the global # namespace. namespace import -force itcl::* namespace eval ::guib { namespace export module variable library [file dirname [info script]] variable version [gets [open [file join $library VERSION] r]] variable options variable module variable library # associative-dimension "settings" is used for user-spefic seetings variable settings #------------------------------------------------------------------------ # CONVENTION for settings() array elements: #------------------------------------------------------------------------ # The elements of the settings() array have the following names: # settings(WHAT.details). For example, all elements that are # dealing with filename, have the following names: # settings(FILENAME.*) #------------------------------------------------------------------------ # regular expresion for the for the endlist-string set settings(NAMELIST.end_regexp) {^ *&end|^ */} # string to write for the end-of-namelist set settings(NAMELIST.end_string) { /} # case-sensitivity of namelists variable names (i.e., _nocase like # the "-nocase" tcl-option) set settings(NAMELIST.varname_nocase) 1 # format for printing namelist's variables names set settings(NAMELIST.varname_format) { %15s} # support for undefined namelist variables (0|1) set settings(NAMELIST.variable_support_undefined) 0 # do we quotre the string [charagetr*(*)] type of variables (0|1) set settings(NAMELIST.quote_strings) 1 set settings(NAMELIST.quote_char) ' # case-sensitivity of input (0|1) set settings(INPUT.nocase) 0 #--- # For case-insensitive input ( $settings(INPUT.nocase) == 1 ): # print the keywords as "upper|lower|unchanged" set settings(INPUT.nocase_preference_keyword) upper; # not USED yet # print the variable values as "upper|lower|unchanged" set settings(INPUT.nocase_preference_varvalue) unchanged; # not USED yet #--- # whether to add a trailing slash to dirnames set settings(DIRNAME.trailing_slash) 0 # whether to use only file-tail for filenames set settings(FILENAME.only_tail) 0 # ------------------------------------------------------------------------ # IMAGES # ------------------------------------------------------------------------ # create toolbar images ... image create photo filenew -format gif \ -file [file join $env(GUIB) images filenew2.gif] image create photo fileopen -format gif \ -file [file join $env(GUIB) images fileopen2.gif] image create photo filesave -format gif \ -file [file join $env(GUIB) images filesave2.gif] image create photo filesaveas -format gif \ -file [file join $env(GUIB) images filesaveas2.gif] image create photo fileclose -format gif \ -file [file join $env(GUIB) images fileclose2.gif] image create photo exitApp -format gif \ -file [file join $env(GUIB) images exit2.gif] } # ------------------------------------------------------------------------ # load TclLib: # we only need the cmdline package of TclLib # ------------------------------------------------------------------------ lappend auto_path [file join $guib::library external lib] package require cmdline 1.2 #------------------------------------------------------------------------ # load TCLU & TKU library #------------------------------------------------------------------------ lappend auto_path [file join $guib::library lib] package require tclu package require tku #------------------------------------------------------------------------ # load GUIB #------------------------------------------------------------------------ lappend auto_path [file join $guib::library src] # ------------------------------------------------------------------------ # provide package GUIB # ------------------------------------------------------------------------ package provide Guib $guib::version namespace eval ::guib { # we should source the file guib-keywords-def.tcl in order to load # the definiton of GUIB keywords options source [file join $library src guib-keywords-def.tcl] # we should source the file widgets.itcl in order to load the # definiton of ::guib::widgets namespace variables !!! source [file join $library src widgets.itcl] source [file join $library src keywidgets.itcl] #source [file join $library src keywordObj.itcl] #source [file join $library src moduleObj.itcl] }