! UIMX ascii DTSCRIPT key: 5044                                                 
! @(#)41	1.1  src/dtuimx/ibmr2/dtscriptdir/contrib/TimeSheet/TimeSheet.i, uimx, dtuimx720 8/8/94 20:09:45
 
!  COMPONENT_NAME: DT UIM/X
!  
!  ORIGINS: 58
!  
!  
!                   Copyright IBM Corporation 1991, 1994
!  
!                         All Rights Reserved
!  
!   Permission to use, copy, modify, and distribute this software and its
!   documentation for any purpose and without fee is hereby granted,
!   provided that the above copyright notice appear in all copies and that
!   both that copyright notice and this permission notice appear in
!   supporting documentation, and that the name of IBM not be
!   used in advertising or publicity pertaining to distribution of the
!   software without specific, written prior permission.
!  
!   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
!   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
!   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
!   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
!   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
!   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
!   OR PERFORMANCE OF THIS SOFTWARE.
 

*dialogWindow1.class: form
*dialogWindow1.gbldecl: #include <stdio.h>
*dialogWindow1.funcdecl: swidget create_dialogWindow1(swidget UxParent)
*dialogWindow1.funcname: create_dialogWindow1
*dialogWindow1.funcdef: "swidget", "<create_dialogWindow1>(%)"
*dialogWindow1.fcode: return(rtrn);\

*dialogWindow1.static: true
*dialogWindow1.name: dialogWindow1
*dialogWindow1.parent: NO_PARENT
*dialogWindow1.parentExpression: UxParent
*dialogWindow1.defaultShell: topLevelShell
*dialogWindow1.icode: #\
# The current PrintCommand is 'cat' this will print the timesheet to\
# stdout, to send the timesheet to the printer comment out the\
# 'PrintCommand=cat' and uncomment the PrintCommand=lp. It may be\
# necessary to configure this command to use your system's print\
# command, if it is different from the command 'lp'.\
#\
#typeset PrintCommand=lp\
typeset PrintCommand=cat\
\
#\
# The default timesheet data filename is '.ts.save', the default timesheet\
# directory is the current directory and the default company name is\
# 'Chez Nathalie'. You can change the value of these variables to meet\
# your own needs.\
#\
typeset TimeSheetFile=".ts.save" \\
	TimeSheetDir=$(pwd) \\
	CompanyName="Chez Nathalie"\
	\
typeset NameField \\
	DateField \\
	InitialPopup="yes"\
\
set -A Week Sat Sun Mon Tue Wed Thu Fri\
set -A Column Job Description ${Week[@]} Total \
eval typeset ${Column[@]} ColumnTotal\
\
typeset -i RowId ColumnId\
\
if [[ -f $1 ]] then\
	TimeSheetDir=$(dirname  $1)\
	TimeSheetFile=$(basename $1)\
fi \
\
function put_widget_in_row\
# Widget widget\
# char* rowname\
{\
	eval typeset NRow='${#'$2'[@]}'\
\
	eval $2'[$NRow]=$1'\
}\
\
function find_row_id\
# void* variable\
# char* name\
{\
	typeset col\
\
	for col in ${Column[@]}\
	do\
		typeset -i indx=0\
		eval typeset items='${'$col'[@]}'\
	\
		for item in $items\
		do\
			if [[ $2 == $item ]] then\
				eval $1=$indx\
				return\
			fi\
			indx=$indx+1\
		done\
	done\
}\
\
function find_column_id\
# void* variable\
# char* name\
{\
	typeset -i indx=0\
	typeset col\
\
	for col in ${Column[@]}\
	do\
		if [[ $2 == $col ]] then\
			eval $1=$indx\
			return\
		fi\
		indx=$indx+1\
	done\
}\
\
\
function recalculate_row\
# int id\
{\
	typeset -i id=$1\
\
	typeset day rtotal_field=${Total[$id]}\
	typeset -i rtotal=0\
\
	for day in ${Week[@]}\
	do\
		typeset -i value\
		eval XtGetValues '${'$day'[$id]}' value:value		\
		rtotal=$rtotal+value\
	done\
\
	if ((rtotal == 0)); then\
		XtSetValues $rtotal_field value:""\
	else\
		XtSetValues $rtotal_field value:$rtotal\
	fi\
\
\
}\
\
function recalculate_column\
#  char* colname\
{\
	typeset colname=$1\
\
	typeset ctotal_field job jobs_in_day\
	typeset -i ctotal=0\
	typeset -i id\
\
	find_column_id id $colname\
\
	ctotal_field=${ColumnTotal[$id]}\
\
	eval jobs_in_day='${'$colname'[@]}'\
\
	for job in $jobs_in_day\
	do\
		typeset -i value\
		XtGetValues $job value:value		\
		ctotal=$ctotal+value\
	done\
\
	if ((ctotal == 0)); then\
		XtSetValues $ctotal_field value:""\
	else\
		XtSetValues $ctotal_field value:$ctotal\
	fi\
}\
\
function recalculate_total\
{\
	typeset -i total=0\
	typeset -i id\
	typeset subtotal_field total_field \
\
	find_column_id id Total\
	total_field=${ColumnTotal[$id]}\
\
	for subtotal_field in ${ColumnTotal[@]}\
	do\
		typeset -i value\
\
		if [[ $subtotal_field == $total_field ]] then\
			break\
		fi\
\
		XtGetValues $subtotal_field value:value\
		total=$total+value\
	done\
\
	if ((total == 0)); then\
		XtSetValues $total_field value:""\
	else\
		XtSetValues $total_field value:$total\
	fi\
}\
\
function recalculate\
#  KeyValue	keyvalue\
{\
	typeset colname=$1\
	typeset -i rowid=$2\
\
	recalculate_row $rowid	\
	recalculate_column $colname\
	recalculate_total\
}\
\
function SaveTimeSheet\
{\
	typeset Name WeekEnding\
	typeset -i value\
	typeset -i nrows=${#Job[@]} indx=0\
\
	XtGetValues $NameField	value:Name\
	XtGetValues $DateField	value:WeekEnding\
\
	( \
\
	print $Name\
	print $WeekEnding\
	print $nrows\
\
	while ((indx < nrows))\
	do	\
		typeset job description day\
\
		XtGetValues ${Job[$indx]} value:job\
		print "$job" \
			\
		XtGetValues ${Description[$indx]} value:description\
		print "$description" \
\
		for day in ${Week[@]}\
		do\
			eval XtGetValues '${'$day'[$indx]}' value:value\
			printf  "%-5d" value \
		done\
\
		XtGetValues ${Total[$indx]} value:value\
		printf  "%-5d" value \
\
		print "" \
\
		indx=indx+1\
	done\
\
	for total in ${ColumnTotal[@]} \
	do\
		XtGetValues $total value:value\
		printf "%-5d" value \
	done\
\
	print ""  \
	) > ${TimeSheetDir}/${TimeSheetFile}\
}\
\
function save_timesheet_cb\
{\
	typeset filepath=${CB_CALL_DATA.VALUE}\
\
	TimeSheetFile=$(basename $filepath)\
	TimeSheetDir=$(dirname $filepath)\
	\
	SaveTimeSheet\
}\
\
# \
# NOTE: No error checking is done on timesheet content\
# \
function TimeSheetSave\
{\
	typeset fsb dir\
\
	XmCreateFileSelectionDialog fsb $pushButton1 \\
		"Save TimeSheet" \\
		autoUnmanage:True \\
		directory:${TimeSheetDir}		\
\
	XtGetValues $fsb directory:dir\
	XtSetValues $fsb dirSpec:${dir}${TimeSheetFile}\
\
	XtAddCallback $fsb okCallback save_timesheet_cb \
	XtManageChild $fsb\
}\
\
# \
# NOTE: No error checking is done on input file\
# \
function TimeSheetLoad\
{\
	typeset item Values\
	typeset -i i j NRow\
\
        exec 3< ${TimeSheetDir}/$TimeSheetFile\
\
	read -u3 item\
	XtSetValues $NameField value:"$item"\
\
	read -u3 item\
	XtSetValues $DateField value:"$item"\
\
	read -u3 NRow\
	i=0\
	while ((i < NRow))\
	do\
		typeset day widget\
\
		read -u3 item\
		XtSetValues ${Job[$i]} value:"$item"\
\
		read -u3 item\
		XtSetValues ${Description[$i]} value:"$item"\
\
		read -u3 item\
		set -A Values $item\
\
		j=0\
		for day in ${Week[@]} Total \
		do\
			eval widget='${'$day'[$i]}'\
			if ((${Values[$j]} != 0)); then\
				XtSetValues $widget value:${Values[$j]}\
			fi\
		\
			j=j+1\
		done\
		\
		i=i+1\
	done\
\
	read -u3 item\
	set -A Values $item\
\
	j=0\
	for total in ${ColumnTotal[@]} \
	do\
		if ((${Values[$j]} != 0)); then\
			XtSetValues $total value:${Values[$j]}\
		fi\
		j=j+1\
	done\
\
	exec 3<&-\
}\
\
function TimeSheetPrint\
{\
	typeset -i value\
	typeset -i nrows=${#Job[@]} indx=0\
\
	XtGetValues $NameField	value:Name\
	XtGetValues $DateField  value:WeekEnding\
\
	( \
\
	print ""\
	print $CompanyName\
	print "======================" \
	print "" \
	printf "Name: %-39.38sWeek Ending: %-8.8s\n" "$Name"  "$WeekEnding" \
	print "=================================================================="\
	print "Job No. Description       Sat  Sun  Mon  Tue  Wed  Thu  Fri  Total" \
	print "=================================================================="\
\
	while ((indx < nrows))\
	do	\
		typeset job description day\
\
		XtGetValues ${Job[$indx]} value:job\
		printf  "%-8.7s" "$job" \
			\
		XtGetValues ${Description[$indx]} value:description\
		printf  "%-18.17s" "$description" \
\
		for day in ${Week[@]}\
		do\
			eval XtGetValues '${'$day'[$indx]}' value:value\
			printf  "%-5d" value \
		done\
\
		XtGetValues ${Total[$indx]} value:value\
		printf  "%-5d" value \
\
		print "" \
\
		indx=indx+1\
	done\
\
	print "=================================================================" \
	printf  "%-26.26s" "Totals"  \
\
	for total in ${ColumnTotal[@]} \
	do\
		XtGetValues $total value:value\
		printf "%-5d" value \
	done\
\
	print ""  \
	) | $PrintCommand\
}\
\
function TimeSheetClear\
{\
	typeset column\
	typeset -i i=0 NRow=${#Job[@]}\
\
	XtSetValues $NameField value:""\
	XtSetValues $DateField value:""\
\
	while ((i < NRow))\
	do\
		typeset -i j=0\
\
		for column in ${Column[@]}\
		do\
			eval typeset widget='${'$column'[$i]}'\
\
			XtSetValues $widget 	value:${Values[$j]}\
\
			j=j+1\
		done\
		\
		i=i+1\
	done\
\
	i=0\
	for column in ${ColumnTotal[@]} \
	do\
		XtSetValues $column value:""\
		j=j+1\
	done\
}\
\
# \
# This popupCallback is attached to the XmDialogShell widget, this Widget id\
# is held in the global variable 'theShell'. \
# \
# It is often necessary to perform some action once all the widgets have\
# been created, in this case loading the timesheet data. We can accomplish this\
# by attaching a popup callback to the XmDialogShell, we do this by\
# entering code to add the popupCallback in the createCallback for the\
# dialogWindow1.\
#\
function popup_cb\
{\
	if [[ -f ${TimeSheetDir}/${TimeSheetFile} && $InitialPopup == "yes" ]] then\
		TimeSheetLoad\
		InitialPopup="no"\
	fi\
}\

*dialogWindow1.resizePolicy: "resize_none"
*dialogWindow1.isCompound: "true"
*dialogWindow1.compoundIcon: "dialogW.xpm"
*dialogWindow1.compoundName: "dialog_Window"
*dialogWindow1.unitType: "pixels"
*dialogWindow1.isDuplicatable: "false"
*dialogWindow1.width: 740
*dialogWindow1.height: 453
*dialogWindow1.x: 184
*dialogWindow1.y: 195
*dialogWindow1.defaultButton: "defaultButton1"
*dialogWindow1.dialogTitle: "Mark's Timesheet"
*dialogWindow1.createCallback: XtAddCallback $theShell \\
	popupCallback popup_cb

*groupBox1.class: frame
*groupBox1.static: true
*groupBox1.name: groupBox1
*groupBox1.parent: dialogWindow1
*groupBox1.isCompound: "true"
*groupBox1.compoundIcon: "group.xpm"
*groupBox1.compoundName: "group_Box"
*groupBox1.canBeTopLevel: "false"
*groupBox1.canHaveChildren: "false"
*groupBox1.isRegion: "true"
*groupBox1.width: 720
*groupBox1.height: 330
*groupBox1.background.lock: true
*groupBox1.foreground.lock: true
*groupBox1.compoundResourceSet: "LabelString:labelBox1.labelString;\
LabelPixmap:labelBox1.labelPixmap;\
LabelType:labelBox1.labelType;\
Alignment:labelBox1.alignment;\
FontList:labelBox1.fontList;\
Background:groupBox1.background,labelBox1.background,formBox1.background;\
Foreground:groupBox1.foreground,labelBox1.foreground,formBox1.foreground"
*groupBox1.x: 10
*groupBox1.y: 10

*labelBox1.class: label
*labelBox1.static: true
*labelBox1.name: labelBox1
*labelBox1.parent: groupBox1
*labelBox1.childType: "frame_title_child"
*labelBox1.labelString: "Chez Nathalie"
*labelBox1.labelType: "string"
*labelBox1.isCompound: "false"
*labelBox1.isInCompound: "true"
*labelBox1.isRegion: "false"
*labelBox1.isSelectable: "false"
*labelBox1.usePropEditor: "false"
*labelBox1.canHaveChildren: "false"
*labelBox1.fontList: "9x15bold"

*formBox1.class: form
*formBox1.static: true
*formBox1.name: formBox1
*formBox1.parent: groupBox1
*formBox1.resizePolicy: "resize_none"
*formBox1.isCompound: "false"
*formBox1.isInCompound: "true"
*formBox1.isRegion: "false"
*formBox1.isSelectable: "false"
*formBox1.usePropEditor: "false"

*separator1.class: separator
*separator1.static: true
*separator1.name: separator1
*separator1.parent: formBox1
*separator1.isCompound: "true"
*separator1.compoundIcon: "sep.xpm"
*separator1.compoundName: "separator_"
*separator1.canBeTopLevel: "false"
*separator1.canHaveChildren: "false"
*separator1.width: 690
*separator1.height: 10
*separator1.x: 10
*separator1.y: 60

*separator2.class: separator
*separator2.static: true
*separator2.name: separator2
*separator2.parent: formBox1
*separator2.isCompound: "true"
*separator2.compoundIcon: "sep.xpm"
*separator2.compoundName: "separator_"
*separator2.canBeTopLevel: "false"
*separator2.canHaveChildren: "false"
*separator2.width: 690
*separator2.height: 10
*separator2.x: 10
*separator2.y: 100

*separator3.class: separator
*separator3.static: true
*separator3.name: separator3
*separator3.parent: formBox1
*separator3.isCompound: "true"
*separator3.compoundIcon: "sep.xpm"
*separator3.compoundName: "separator_"
*separator3.canBeTopLevel: "false"
*separator3.canHaveChildren: "false"
*separator3.width: 690
*separator3.height: 10
*separator3.x: 10
*separator3.y: 230

*label1.class: label
*label1.static: true
*label1.name: label1
*label1.parent: formBox1
*label1.isCompound: "true"
*label1.compoundIcon: "label.xpm"
*label1.compoundName: "label_"
*label1.canBeTopLevel: "false"
*label1.canHaveChildren: "false"
*label1.width: 60
*label1.height: 35
*label1.x: 30
*label1.y: 10
*label1.labelString: "Name:"
*label1.fontList: "9x15"

*textField1.class: textField
*textField1.static: true
*textField1.name: textField1
*textField1.parent: formBox1
*textField1.isCompound: "true"
*textField1.compoundIcon: "textfield.xpm"
*textField1.compoundName: "text_Field"
*textField1.canBeTopLevel: "false"
*textField1.canHaveChildren: "false"
*textField1.width: 260
*textField1.height: 35
*textField1.x: 110
*textField1.y: 10
*textField1.createCallback: NameField=$widget\


*label2.class: label
*label2.static: true
*label2.name: label2
*label2.parent: formBox1
*label2.isCompound: "true"
*label2.compoundIcon: "label.xpm"
*label2.compoundName: "label_"
*label2.canBeTopLevel: "false"
*label2.canHaveChildren: "false"
*label2.width: 120
*label2.height: 30
*label2.x: 390
*label2.y: 10
*label2.labelString: "Week Ending:"
*label2.fontList: "9x15"

*textField3.class: textField
*textField3.static: true
*textField3.name: textField3
*textField3.parent: formBox1
*textField3.isCompound: "true"
*textField3.compoundIcon: "textfield.xpm"
*textField3.compoundName: "text_Field"
*textField3.canBeTopLevel: "false"
*textField3.canHaveChildren: "false"
*textField3.width: 170
*textField3.height: 35
*textField3.x: 520
*textField3.y: 10
*textField3.createCallback: DateField=$widget

*pushButton1.class: pushButton
*pushButton1.static: true
*pushButton1.name: pushButton1
*pushButton1.parent: formBox1
*pushButton1.isCompound: "true"
*pushButton1.compoundIcon: "push.xpm"
*pushButton1.compoundName: "push_Button"
*pushButton1.canBeTopLevel: "false"
*pushButton1.canHaveChildren: "false"
*pushButton1.unitType: "pixels"
*pushButton1.defaultButtonShadowThickness.lock: true
*pushButton1.width: 120
*pushButton1.height: 40
*pushButton1.x: 20
*pushButton1.y: 240
*pushButton1.labelPixmap: "/usr/dt/appconfig/icons/C/DtCM.l.pm"
*pushButton1.labelType: "pixmap"
*pushButton1.activateCallback: TimeSheetClear

*textField4.class: textField
*textField4.static: true
*textField4.name: textField4
*textField4.parent: formBox1
*textField4.isCompound: "true"
*textField4.compoundIcon: "textfield.xpm"
*textField4.compoundName: "text_Field"
*textField4.canBeTopLevel: "false"
*textField4.canHaveChildren: "false"
*textField4.width: 120
*textField4.height: 35
*textField4.x: 10
*textField4.y: 115
*textField4.createCallback: put_widget_in_row $widget Job

*textField5.class: textField
*textField5.static: true
*textField5.name: textField5
*textField5.parent: formBox1
*textField5.isCompound: "true"
*textField5.compoundIcon: "textfield.xpm"
*textField5.compoundName: "text_Field"
*textField5.canBeTopLevel: "false"
*textField5.canHaveChildren: "false"
*textField5.width: 210
*textField5.height: 35
*textField5.x: 140
*textField5.y: 115
*textField5.createCallback: put_widget_in_row $widget Description

*textField6.class: textField
*textField6.static: true
*textField6.name: textField6
*textField6.parent: formBox1
*textField6.isCompound: "true"
*textField6.compoundIcon: "textfield.xpm"
*textField6.compoundName: "text_Field"
*textField6.canBeTopLevel: "false"
*textField6.canHaveChildren: "false"
*textField6.width: 30
*textField6.height: 35
*textField6.x: 360
*textField6.y: 115
*textField6.background: "#f08d90"
*textField6.sensitive: "false"
*textField6.createCallback: put_widget_in_row $widget Sat
*textField6.valueChangedCallback: find_row_id RowId $widget; recalculate Sat $RowId

*textField7.class: textField
*textField7.static: true
*textField7.name: textField7
*textField7.parent: formBox1
*textField7.isCompound: "true"
*textField7.compoundIcon: "textfield.xpm"
*textField7.compoundName: "text_Field"
*textField7.canBeTopLevel: "false"
*textField7.canHaveChildren: "false"
*textField7.width: 30
*textField7.height: 35
*textField7.x: 400
*textField7.y: 115
*textField7.background: "#f08d90"
*textField7.sensitive: "false"
*textField7.createCallback: put_widget_in_row $widget Sun
*textField7.valueChangedCallback: find_row_id RowId $widget; recalculate Sun $RowId

*textField8.class: textField
*textField8.static: true
*textField8.name: textField8
*textField8.parent: formBox1
*textField8.isCompound: "true"
*textField8.compoundIcon: "textfield.xpm"
*textField8.compoundName: "text_Field"
*textField8.canBeTopLevel: "false"
*textField8.canHaveChildren: "false"
*textField8.width: 30
*textField8.height: 35
*textField8.x: 440
*textField8.y: 115
*textField8.createCallback: put_widget_in_row $widget Mon
*textField8.valueChangedCallback: find_row_id RowId $widget; recalculate Mon $RowId

*textField9.class: textField
*textField9.static: true
*textField9.name: textField9
*textField9.parent: formBox1
*textField9.isCompound: "true"
*textField9.compoundIcon: "textfield.xpm"
*textField9.compoundName: "text_Field"
*textField9.canBeTopLevel: "false"
*textField9.canHaveChildren: "false"
*textField9.width: 30
*textField9.height: 35
*textField9.x: 480
*textField9.y: 115
*textField9.createCallback: put_widget_in_row $widget Tue
*textField9.valueChangedCallback: find_row_id RowId $widget; recalculate Tue $RowId

*textField10.class: textField
*textField10.static: true
*textField10.name: textField10
*textField10.parent: formBox1
*textField10.isCompound: "true"
*textField10.compoundIcon: "textfield.xpm"
*textField10.compoundName: "text_Field"
*textField10.canBeTopLevel: "false"
*textField10.canHaveChildren: "false"
*textField10.width: 30
*textField10.height: 35
*textField10.x: 520
*textField10.y: 115
*textField10.createCallback: put_widget_in_row $widget Wed
*textField10.valueChangedCallback: find_row_id RowId $widget; recalculate Wed $RowId

*textField11.class: textField
*textField11.static: true
*textField11.name: textField11
*textField11.parent: formBox1
*textField11.isCompound: "true"
*textField11.compoundIcon: "textfield.xpm"
*textField11.compoundName: "text_Field"
*textField11.canBeTopLevel: "false"
*textField11.canHaveChildren: "false"
*textField11.width: 30
*textField11.height: 35
*textField11.x: 560
*textField11.y: 115
*textField11.createCallback: put_widget_in_row $widget Thu
*textField11.valueChangedCallback: find_row_id RowId $widget; recalculate Thu $RowId

*textField12.class: textField
*textField12.static: true
*textField12.name: textField12
*textField12.parent: formBox1
*textField12.isCompound: "true"
*textField12.compoundIcon: "textfield.xpm"
*textField12.compoundName: "text_Field"
*textField12.canBeTopLevel: "false"
*textField12.canHaveChildren: "false"
*textField12.width: 30
*textField12.height: 35
*textField12.x: 600
*textField12.y: 115
*textField12.createCallback: put_widget_in_row $widget Fri
*textField12.valueChangedCallback: find_row_id RowId $widget; recalculate Fri $RowId

*textField13.class: textField
*textField13.static: true
*textField13.name: textField13
*textField13.parent: formBox1
*textField13.isCompound: "true"
*textField13.compoundIcon: "textfield.xpm"
*textField13.compoundName: "text_Field"
*textField13.canBeTopLevel: "false"
*textField13.canHaveChildren: "false"
*textField13.width: 60
*textField13.height: 35
*textField13.x: 640
*textField13.y: 115
*textField13.sensitive: "false"
*textField13.fontList: "9x15bold"
*textField13.createCallback: put_widget_in_row $widget Total

*label3.class: label
*label3.static: true
*label3.name: label3
*label3.parent: formBox1
*label3.isCompound: "true"
*label3.compoundIcon: "label.xpm"
*label3.compoundName: "label_"
*label3.canBeTopLevel: "false"
*label3.canHaveChildren: "false"
*label3.width: 120
*label3.height: 30
*label3.x: 10
*label3.y: 70
*label3.labelString: "Job No."
*label3.fontList: "9x15"

*label4.class: label
*label4.static: true
*label4.name: label4
*label4.parent: formBox1
*label4.isCompound: "true"
*label4.compoundIcon: "label.xpm"
*label4.compoundName: "label_"
*label4.canBeTopLevel: "false"
*label4.canHaveChildren: "false"
*label4.width: 170
*label4.height: 30
*label4.x: 140
*label4.y: 70
*label4.labelString: "Description"
*label4.fontList: "9x15"

*label5.class: label
*label5.static: true
*label5.name: label5
*label5.parent: formBox1
*label5.isCompound: "true"
*label5.compoundIcon: "label.xpm"
*label5.compoundName: "label_"
*label5.canBeTopLevel: "false"
*label5.canHaveChildren: "false"
*label5.width: 30
*label5.height: 30
*label5.x: 360
*label5.y: 70
*label5.labelString: "Sat"

*label6.class: label
*label6.static: true
*label6.name: label6
*label6.parent: formBox1
*label6.isCompound: "true"
*label6.compoundIcon: "label.xpm"
*label6.compoundName: "label_"
*label6.canBeTopLevel: "false"
*label6.canHaveChildren: "false"
*label6.width: 30
*label6.height: 30
*label6.x: 400
*label6.y: 70
*label6.labelString: "Sun"

*label7.class: label
*label7.static: true
*label7.name: label7
*label7.parent: formBox1
*label7.isCompound: "true"
*label7.compoundIcon: "label.xpm"
*label7.compoundName: "label_"
*label7.canBeTopLevel: "false"
*label7.canHaveChildren: "false"
*label7.width: 30
*label7.height: 30
*label7.x: 440
*label7.y: 70
*label7.labelString: "Mon"

*label8.class: label
*label8.static: true
*label8.name: label8
*label8.parent: formBox1
*label8.isCompound: "true"
*label8.compoundIcon: "label.xpm"
*label8.compoundName: "label_"
*label8.canBeTopLevel: "false"
*label8.canHaveChildren: "false"
*label8.width: 30
*label8.height: 30
*label8.x: 480
*label8.y: 70
*label8.labelString: "Tue"

*label9.class: label
*label9.static: true
*label9.name: label9
*label9.parent: formBox1
*label9.isCompound: "true"
*label9.compoundIcon: "label.xpm"
*label9.compoundName: "label_"
*label9.canBeTopLevel: "false"
*label9.canHaveChildren: "false"
*label9.width: 30
*label9.height: 30
*label9.x: 520
*label9.y: 70
*label9.labelString: "Wed"

*label10.class: label
*label10.static: true
*label10.name: label10
*label10.parent: formBox1
*label10.isCompound: "true"
*label10.compoundIcon: "label.xpm"
*label10.compoundName: "label_"
*label10.canBeTopLevel: "false"
*label10.canHaveChildren: "false"
*label10.width: 30
*label10.height: 30
*label10.x: 560
*label10.y: 70
*label10.labelString: "Thu"

*label11.class: label
*label11.static: true
*label11.name: label11
*label11.parent: formBox1
*label11.isCompound: "true"
*label11.compoundIcon: "label.xpm"
*label11.compoundName: "label_"
*label11.canBeTopLevel: "false"
*label11.canHaveChildren: "false"
*label11.width: 30
*label11.height: 30
*label11.x: 600
*label11.y: 70
*label11.labelString: "Fri"

*label12.class: label
*label12.static: true
*label12.name: label12
*label12.parent: formBox1
*label12.isCompound: "true"
*label12.compoundIcon: "label.xpm"
*label12.compoundName: "label_"
*label12.canBeTopLevel: "false"
*label12.canHaveChildren: "false"
*label12.width: 60
*label12.height: 30
*label12.x: 640
*label12.y: 70
*label12.labelString: "Total"

*textField34.class: textField
*textField34.static: true
*textField34.name: textField34
*textField34.parent: formBox1
*textField34.isCompound: "true"
*textField34.compoundIcon: "textfield.xpm"
*textField34.compoundName: "text_Field"
*textField34.canBeTopLevel: "false"
*textField34.canHaveChildren: "false"
*textField34.width: 30
*textField34.height: 35
*textField34.x: 360
*textField34.y: 245
*textField34.background: "#f08d90"
*textField34.sensitive: "false"
*textField34.createCallback: find_column_id ColumnId Sat; ColumnTotal[$ColumnId]=$widget

*textField35.class: textField
*textField35.static: true
*textField35.name: textField35
*textField35.parent: formBox1
*textField35.isCompound: "true"
*textField35.compoundIcon: "textfield.xpm"
*textField35.compoundName: "text_Field"
*textField35.canBeTopLevel: "false"
*textField35.canHaveChildren: "false"
*textField35.width: 30
*textField35.height: 35
*textField35.x: 400
*textField35.y: 245
*textField35.background: "#f08d90"
*textField35.sensitive: "false"
*textField35.createCallback: find_column_id ColumnId Sun; ColumnTotal[$ColumnId]=$widget

*textField36.class: textField
*textField36.static: true
*textField36.name: textField36
*textField36.parent: formBox1
*textField36.isCompound: "true"
*textField36.compoundIcon: "textfield.xpm"
*textField36.compoundName: "text_Field"
*textField36.canBeTopLevel: "false"
*textField36.canHaveChildren: "false"
*textField36.width: 30
*textField36.height: 35
*textField36.x: 440
*textField36.y: 245
*textField36.createCallback: find_column_id ColumnId Mon; ColumnTotal[$ColumnId]=$widget
*textField36.sensitive: "false"

*textField37.class: textField
*textField37.static: true
*textField37.name: textField37
*textField37.parent: formBox1
*textField37.isCompound: "true"
*textField37.compoundIcon: "textfield.xpm"
*textField37.compoundName: "text_Field"
*textField37.canBeTopLevel: "false"
*textField37.canHaveChildren: "false"
*textField37.width: 30
*textField37.height: 35
*textField37.x: 480
*textField37.y: 245
*textField37.createCallback: find_column_id ColumnId Tue; ColumnTotal[$ColumnId]=$widget
*textField37.sensitive: "false"

*textField38.class: textField
*textField38.static: true
*textField38.name: textField38
*textField38.parent: formBox1
*textField38.isCompound: "true"
*textField38.compoundIcon: "textfield.xpm"
*textField38.compoundName: "text_Field"
*textField38.canBeTopLevel: "false"
*textField38.canHaveChildren: "false"
*textField38.width: 30
*textField38.height: 35
*textField38.x: 520
*textField38.y: 245
*textField38.createCallback: find_column_id ColumnId Wed; ColumnTotal[$ColumnId]=$widget
*textField38.sensitive: "false"

*textField39.class: textField
*textField39.static: true
*textField39.name: textField39
*textField39.parent: formBox1
*textField39.isCompound: "true"
*textField39.compoundIcon: "textfield.xpm"
*textField39.compoundName: "text_Field"
*textField39.canBeTopLevel: "false"
*textField39.canHaveChildren: "false"
*textField39.width: 30
*textField39.height: 35
*textField39.x: 560
*textField39.y: 245
*textField39.createCallback: find_column_id ColumnId Thu; ColumnTotal[$ColumnId]=$widget
*textField39.sensitive: "false"

*textField40.class: textField
*textField40.static: true
*textField40.name: textField40
*textField40.parent: formBox1
*textField40.isCompound: "true"
*textField40.compoundIcon: "textfield.xpm"
*textField40.compoundName: "text_Field"
*textField40.canBeTopLevel: "false"
*textField40.canHaveChildren: "false"
*textField40.width: 30
*textField40.height: 35
*textField40.x: 600
*textField40.y: 245
*textField40.createCallback: find_column_id ColumnId Fri; ColumnTotal[$ColumnId]=$widget
*textField40.sensitive: "false"

*textField41.class: textField
*textField41.static: true
*textField41.name: textField41
*textField41.parent: formBox1
*textField41.isCompound: "true"
*textField41.compoundIcon: "textfield.xpm"
*textField41.compoundName: "text_Field"
*textField41.canBeTopLevel: "false"
*textField41.canHaveChildren: "false"
*textField41.width: 60
*textField41.height: 35
*textField41.x: 640
*textField41.y: 245
*textField41.sensitive: "false"
*textField41.fontList: "9x15bold"
*textField41.createCallback: find_column_id ColumnId Total; ColumnTotal[$ColumnId]=$widget

*label13.class: label
*label13.static: true
*label13.name: label13
*label13.parent: formBox1
*label13.isCompound: "true"
*label13.compoundIcon: "label.xpm"
*label13.compoundName: "label_"
*label13.canBeTopLevel: "false"
*label13.canHaveChildren: "false"
*label13.width: 120
*label13.height: 40
*label13.x: 230
*label13.y: 250
*label13.fontList: "9x15"
*label13.labelString: "TOTALS"

*textField14.class: textField
*textField14.static: true
*textField14.name: textField14
*textField14.parent: formBox1
*textField14.isCompound: "true"
*textField14.compoundIcon: "textfield.xpm"
*textField14.compoundName: "text_Field"
*textField14.canBeTopLevel: "false"
*textField14.canHaveChildren: "false"
*textField14.width: 120
*textField14.height: 35
*textField14.x: 10
*textField14.y: 155
*textField14.createCallback: put_widget_in_row $widget Job

*textField15.class: textField
*textField15.static: true
*textField15.name: textField15
*textField15.parent: formBox1
*textField15.isCompound: "true"
*textField15.compoundIcon: "textfield.xpm"
*textField15.compoundName: "text_Field"
*textField15.canBeTopLevel: "false"
*textField15.canHaveChildren: "false"
*textField15.width: 60
*textField15.height: 35
*textField15.x: 640
*textField15.y: 155
*textField15.sensitive: "false"
*textField15.fontList: "9x15bold"
*textField15.createCallback: put_widget_in_row $widget Total

*textField16.class: textField
*textField16.static: true
*textField16.name: textField16
*textField16.parent: formBox1
*textField16.isCompound: "true"
*textField16.compoundIcon: "textfield.xpm"
*textField16.compoundName: "text_Field"
*textField16.canBeTopLevel: "false"
*textField16.canHaveChildren: "false"
*textField16.width: 30
*textField16.height: 35
*textField16.x: 360
*textField16.y: 155
*textField16.background: "#f08d90"
*textField16.sensitive: "false"
*textField16.createCallback: put_widget_in_row $widget Sat
*textField16.valueChangedCallback: find_row_id RowId $widget; recalculate Sat $RowId

*textField17.class: textField
*textField17.static: true
*textField17.name: textField17
*textField17.parent: formBox1
*textField17.isCompound: "true"
*textField17.compoundIcon: "textfield.xpm"
*textField17.compoundName: "text_Field"
*textField17.canBeTopLevel: "false"
*textField17.canHaveChildren: "false"
*textField17.width: 210
*textField17.height: 35
*textField17.x: 140
*textField17.y: 155
*textField17.createCallback: put_widget_in_row $widget Description

*textField18.class: textField
*textField18.static: true
*textField18.name: textField18
*textField18.parent: formBox1
*textField18.isCompound: "true"
*textField18.compoundIcon: "textfield.xpm"
*textField18.compoundName: "text_Field"
*textField18.canBeTopLevel: "false"
*textField18.canHaveChildren: "false"
*textField18.width: 30
*textField18.height: 35
*textField18.x: 520
*textField18.y: 155
*textField18.createCallback: put_widget_in_row $widget Wed
*textField18.valueChangedCallback: find_row_id RowId $widget; recalculate Wed $RowId

*textField19.class: textField
*textField19.static: true
*textField19.name: textField19
*textField19.parent: formBox1
*textField19.isCompound: "true"
*textField19.compoundIcon: "textfield.xpm"
*textField19.compoundName: "text_Field"
*textField19.canBeTopLevel: "false"
*textField19.canHaveChildren: "false"
*textField19.width: 30
*textField19.height: 35
*textField19.x: 440
*textField19.y: 155
*textField19.createCallback: put_widget_in_row $widget Mon
*textField19.valueChangedCallback: find_row_id RowId $widget; recalculate Mon $RowId

*textField20.class: textField
*textField20.static: true
*textField20.name: textField20
*textField20.parent: formBox1
*textField20.isCompound: "true"
*textField20.compoundIcon: "textfield.xpm"
*textField20.compoundName: "text_Field"
*textField20.canBeTopLevel: "false"
*textField20.canHaveChildren: "false"
*textField20.width: 30
*textField20.height: 35
*textField20.x: 480
*textField20.y: 155
*textField20.createCallback: put_widget_in_row $widget Tue
*textField20.valueChangedCallback: find_row_id RowId $widget; recalculate Tue $RowId

*textField21.class: textField
*textField21.static: true
*textField21.name: textField21
*textField21.parent: formBox1
*textField21.isCompound: "true"
*textField21.compoundIcon: "textfield.xpm"
*textField21.compoundName: "text_Field"
*textField21.canBeTopLevel: "false"
*textField21.canHaveChildren: "false"
*textField21.width: 30
*textField21.height: 35
*textField21.x: 400
*textField21.y: 155
*textField21.background: "#f08d90"
*textField21.sensitive: "false"
*textField21.createCallback: put_widget_in_row $widget Sun
*textField21.valueChangedCallback: find_row_id RowId $widget; recalculate Sun $RowId

*textField22.class: textField
*textField22.static: true
*textField22.name: textField22
*textField22.parent: formBox1
*textField22.isCompound: "true"
*textField22.compoundIcon: "textfield.xpm"
*textField22.compoundName: "text_Field"
*textField22.canBeTopLevel: "false"
*textField22.canHaveChildren: "false"
*textField22.width: 30
*textField22.height: 35
*textField22.x: 560
*textField22.y: 155
*textField22.createCallback: put_widget_in_row $widget Thu
*textField22.valueChangedCallback: find_row_id RowId $widget; recalculate Thu $RowId

*textField23.class: textField
*textField23.static: true
*textField23.name: textField23
*textField23.parent: formBox1
*textField23.isCompound: "true"
*textField23.compoundIcon: "textfield.xpm"
*textField23.compoundName: "text_Field"
*textField23.canBeTopLevel: "false"
*textField23.canHaveChildren: "false"
*textField23.width: 30
*textField23.height: 35
*textField23.x: 600
*textField23.y: 155
*textField23.createCallback: put_widget_in_row $widget Fri
*textField23.valueChangedCallback: find_row_id RowId $widget; recalculate Fri $RowId

*textField24.class: textField
*textField24.static: true
*textField24.name: textField24
*textField24.parent: formBox1
*textField24.isCompound: "true"
*textField24.compoundIcon: "textfield.xpm"
*textField24.compoundName: "text_Field"
*textField24.canBeTopLevel: "false"
*textField24.canHaveChildren: "false"
*textField24.width: 30
*textField24.height: 35
*textField24.x: 360
*textField24.y: 195
*textField24.background: "#f08d90"
*textField24.sensitive: "false"
*textField24.createCallback: put_widget_in_row $widget Sat
*textField24.valueChangedCallback: find_row_id RowId $widget; recalculate Sat $RowId

*textField25.class: textField
*textField25.static: true
*textField25.name: textField25
*textField25.parent: formBox1
*textField25.isCompound: "true"
*textField25.compoundIcon: "textfield.xpm"
*textField25.compoundName: "text_Field"
*textField25.canBeTopLevel: "false"
*textField25.canHaveChildren: "false"
*textField25.width: 120
*textField25.height: 35
*textField25.x: 10
*textField25.y: 195
*textField25.createCallback: put_widget_in_row $widget Job

*textField26.class: textField
*textField26.static: true
*textField26.name: textField26
*textField26.parent: formBox1
*textField26.isCompound: "true"
*textField26.compoundIcon: "textfield.xpm"
*textField26.compoundName: "text_Field"
*textField26.canBeTopLevel: "false"
*textField26.canHaveChildren: "false"
*textField26.width: 210
*textField26.height: 35
*textField26.x: 140
*textField26.y: 195
*textField26.createCallback: put_widget_in_row $widget Description

*textField27.class: textField
*textField27.static: true
*textField27.name: textField27
*textField27.parent: formBox1
*textField27.isCompound: "true"
*textField27.compoundIcon: "textfield.xpm"
*textField27.compoundName: "text_Field"
*textField27.canBeTopLevel: "false"
*textField27.canHaveChildren: "false"
*textField27.width: 30
*textField27.height: 35
*textField27.x: 600
*textField27.y: 195
*textField27.createCallback: put_widget_in_row $widget Fri
*textField27.valueChangedCallback: find_row_id RowId $widget; recalculate Fri $RowId

*textField28.class: textField
*textField28.static: true
*textField28.name: textField28
*textField28.parent: formBox1
*textField28.isCompound: "true"
*textField28.compoundIcon: "textfield.xpm"
*textField28.compoundName: "text_Field"
*textField28.canBeTopLevel: "false"
*textField28.canHaveChildren: "false"
*textField28.width: 30
*textField28.height: 35
*textField28.x: 560
*textField28.y: 195
*textField28.createCallback: put_widget_in_row $widget Thu
*textField28.valueChangedCallback: find_row_id RowId $widget; recalculate Thu $RowId

*textField29.class: textField
*textField29.static: true
*textField29.name: textField29
*textField29.parent: formBox1
*textField29.isCompound: "true"
*textField29.compoundIcon: "textfield.xpm"
*textField29.compoundName: "text_Field"
*textField29.canBeTopLevel: "false"
*textField29.canHaveChildren: "false"
*textField29.width: 30
*textField29.height: 35
*textField29.x: 480
*textField29.y: 195
*textField29.createCallback: put_widget_in_row $widget Tue
*textField29.valueChangedCallback: find_row_id RowId $widget; recalculate Tue $RowId

*textField30.class: textField
*textField30.static: true
*textField30.name: textField30
*textField30.parent: formBox1
*textField30.isCompound: "true"
*textField30.compoundIcon: "textfield.xpm"
*textField30.compoundName: "text_Field"
*textField30.canBeTopLevel: "false"
*textField30.canHaveChildren: "false"
*textField30.width: 30
*textField30.height: 35
*textField30.x: 440
*textField30.y: 195
*textField30.createCallback: put_widget_in_row $widget Mon
*textField30.valueChangedCallback: find_row_id RowId $widget; recalculate Mon $RowId

*textField31.class: textField
*textField31.static: true
*textField31.name: textField31
*textField31.parent: formBox1
*textField31.isCompound: "true"
*textField31.compoundIcon: "textfield.xpm"
*textField31.compoundName: "text_Field"
*textField31.canBeTopLevel: "false"
*textField31.canHaveChildren: "false"
*textField31.width: 30
*textField31.height: 35
*textField31.x: 520
*textField31.y: 195
*textField31.createCallback: put_widget_in_row $widget Wed
*textField31.valueChangedCallback: find_row_id RowId $widget; recalculate Wed $RowId

*textField32.class: textField
*textField32.static: true
*textField32.name: textField32
*textField32.parent: formBox1
*textField32.isCompound: "true"
*textField32.compoundIcon: "textfield.xpm"
*textField32.compoundName: "text_Field"
*textField32.canBeTopLevel: "false"
*textField32.canHaveChildren: "false"
*textField32.width: 30
*textField32.height: 35
*textField32.x: 400
*textField32.y: 195
*textField32.background: "#f08d90"
*textField32.sensitive: "false"
*textField32.createCallback: put_widget_in_row $widget Sun
*textField32.valueChangedCallback: find_row_id RowId $widget; recalculate Sun $RowId

*textField33.class: textField
*textField33.static: true
*textField33.name: textField33
*textField33.parent: formBox1
*textField33.isCompound: "true"
*textField33.compoundIcon: "textfield.xpm"
*textField33.compoundName: "text_Field"
*textField33.canBeTopLevel: "false"
*textField33.canHaveChildren: "false"
*textField33.width: 60
*textField33.height: 35
*textField33.x: 640
*textField33.y: 195
*textField33.sensitive: "false"
*textField33.fontList: "9x15bold"
*textField33.createCallback: put_widget_in_row $widget Total

*pushButton2.class: pushButton
*pushButton2.static: true
*pushButton2.name: pushButton2
*pushButton2.parent: dialogWindow1
*pushButton2.isCompound: "true"
*pushButton2.compoundIcon: "push.xpm"
*pushButton2.compoundName: "push_Button"
*pushButton2.canBeTopLevel: "false"
*pushButton2.canHaveChildren: "false"
*pushButton2.unitType: "pixels"
*pushButton2.defaultButtonShadowThickness.lock: true
*pushButton2.width: 120
*pushButton2.height: 50
*pushButton2.x: 30
*pushButton2.y: 360
*pushButton2.labelString: "SAVE"
*pushButton2.activateCallback: TimeSheetSave

*pushButton3.class: pushButton
*pushButton3.static: true
*pushButton3.name: pushButton3
*pushButton3.parent: dialogWindow1
*pushButton3.isCompound: "true"
*pushButton3.compoundIcon: "push.xpm"
*pushButton3.compoundName: "push_Button"
*pushButton3.canBeTopLevel: "false"
*pushButton3.canHaveChildren: "false"
*pushButton3.unitType: "pixels"
*pushButton3.defaultButtonShadowThickness.lock: true
*pushButton3.width: 120
*pushButton3.height: 50
*pushButton3.x: 310
*pushButton3.y: 360
*pushButton3.labelString: "PRINT"
*pushButton3.activateCallback: TimeSheetPrint

*defaultButton1.class: pushButton
*defaultButton1.static: true
*defaultButton1.name: defaultButton1
*defaultButton1.parent: dialogWindow1
*defaultButton1.isCompound: "true"
*defaultButton1.compoundIcon: "defPush.xpm"
*defaultButton1.compoundName: "default_Button"
*defaultButton1.canBeTopLevel: "false"
*defaultButton1.canHaveChildren: "false"
*defaultButton1.unitType: "pixels"
*defaultButton1.defaultButtonShadowThickness: 1
*defaultButton1.showAsDefault: 1
*defaultButton1.width: 120
*defaultButton1.height: 50
*defaultButton1.x: 570
*defaultButton1.y: 360
*defaultButton1.labelString: "EXIT"
*defaultButton1.activateCallback: exit 0

