#wm iconname . "RADCom"
set point_flg 0
set n 10
set x_arc 82; set y_arc 82; set radius_arc 80;set angle_arc 30 
#[expr 360 / $n]


frame .f1
label .f1.l1 -justify left -text "RADCom" -padx 2 -pady 2 -relief sunken
listbox .f1.list1 -width 0 -height 0
.f1.list1 insert 1 "E:Mail"
.f1.list1 insert 2 "Voice Mail"

.f1.list1 insert 3 "Phone Book"
.f1.list1 insert 4 "Emergency"
.f1.list1 activate 1
button .f1.bredial -text "Redial" -state disabled -relief sunken
button .f1.bhangup -text "HANG UP" -state disabled -relief sunken
button .f1.b1 -text "Angle equals $angle_arc"
button .f1.bdial -text "Make a Call" -width 6
canvas .f1.c1 -background black -height [expr 2*$radius_arc] -width [expr 2*$radius_arc] 

set dial_flg 0
#0 no call in progress
#1 dialing possible
#2 call in progress
#3 hang up state


bind .f1.c1 <ButtonPress-1> "mouse_button1_action .f1.c1 %x %y"
#bind .f1.c1 <Motion> "mouse_highlightarc .f1.c1 %x %y $x_arc $y_arc $radius_arc"
bind .f1.bdial <ButtonPress-1> "mouse_bdial_click .f1.c1 $x_arc $y_arc $radius_arc $angle_arc"
bind .f1.bredial <ButtonPress-1> "mouse_bredial_click .f1"
bind .f1.bhangup <ButtonPress-1> "mouse_bhangup_click .f1 $radius_arc"


proc mouse_bdial_click {.f1.c1 xarc yarc radiusarc anglearc} {
	
	global dial_flg
	if {$dial_flg == 0} {
		.f1.c1 config -background black 
		set dial_flg 1
		set point_flg 1
		.f1.bdial config -relief sunken -state disabled
		.f1.bredial config -relief sunken -state disabled
		.f1.l1 config -text "Dial a number of the pad below..."
		set anglestart 0
		for {set anglectr 0} {$anglectr < 10} {incr anglectr 1} {
		 .f1.c1 create arc [expr $xarc - $radiusarc] [expr $yarc - $radiusarc] [expr $xarc + $radiusarc] [expr $xarc + $radiusarc] -start $anglestart  -extent $anglearc  -fill white -outline white
		 incr anglestart 36 
		 
		}
	}
	if {$dial_flg == 2} {
		.f1.c1 config -background black -height  [expr 2*$radiusarc] -width [expr 2*$radiusarc]
		
		.f1.bhangup config -text "HANG UP" -state active -relief raised
		set dial_flg 3
		set point_flg 0
		.f1.bdial config -relief sunken -state disabled		
		.f1.l1 config -text "Call in progress..."
	}	

}

proc mouse_bredial_click {.f1} {
	global dial_flg
	if {$dial_flg !=3} {
		destroy .f1.c1.lab1
		.f1.c1 config -background black
		.f1.bredial config -state disabled -relief sunken
		.f1.bhangup config -text "HANG UP" -state active -relief raised
		set dial_flg 3
		.f1.bdial config -relief sunken -state disabled		
		.f1.l1 config -text "Redial call in progress..."
	}


}
proc mouse_bhangup_click {.f1 radiusarc} {
	global dial_flg
	if {$dial_flg == 3} {
	#	destroy .f1.c1.lab1
		.f1.c1 config -background black -height  [expr 2*$radiusarc] -width [expr 2*$radiusarc] 
		.f1.bdial config -relief raised -text "Make a Call" -state active		
		.f1.bredial config -relief raised -state normal
		.f1.bhangup config -relief sunken -state disabled		
		.f1.l1 config -text "Compose number or Redial"
		set dial_flg 0
	}
}

proc mouse_button1_action {c x y} {
	global dial_flg	

	if {$dial_flg == 1} {
		set dial_flg 2			      
		.f1.bdial config -relief raised -text "DIAL" -state active
		.f1.bredial config -text "Redial" -state disabled -relief sunken
		.f1.bhangup config -text "HANG UP" -state disabled -relief sunken
		$c create arc [expr $x-20] [expr $y-20] [expr $x + 20] [expr $y + 20] -start 0 -extent 36 -fill red
	}
	if {$dial_flg == 2} {
		$c create arc [expr $x-20] [expr $y-20] [expr $x + 20] [expr $y + 20] -start 0 -extent 36 -fill red
	}

}

proc mouse_highlightarc {c x y xarc yarc radiusarc} {
	set ylocal [expr $y - $yarc] 
	set xlocal [expr $x - $xarc] 

	if {$xlocal != 0} {
		set grad abs([expr $ylocal / $xlocal])
		
		set theta [expr [expr 360 * [expr atan($grad) / 6.26]]]
	} else {
		set theta 0
	}
	
	set y_sqrd [expr $ylocal*$ylocal]
	set x_sqrd [expr $xlocal*$xlocal]
	set r [expr $y_sqrd + $x_sqrd]
	set radius [expr sqrt($r)]

	.f1.b1 config -text "Position th= $theta and r= $radius real x=$x y=$y"

}

pack .f1
pack .f1.l1 -side top -fill x
#pack .f1.b1 -fill x

pack .f1.c1 -side left
pack .f1.list1 -anchor w -fill x

pack .f1.bdial -fill x
pack .f1.bredial -fill x
pack .f1.bhangup -fill x

