# starts the Intergrated User Interface relate from sdr
#  location for Unix: $HOME/.sdr/sdr.tcl
#  location for Win95, Win98, WinNT: %HOMEDIR%\sdr\sdr.tcl
#         set %HOME% to %HOMEDIR% too if you use no sdr from relate
#
# Christoph Fleck mmt-ref@tu-dresden.de (MMRZ Dresden, Germany) 2000/03/17

rename popup popup_relate
proc popup {aid ifstyle msgsrc} {
    popup_relate $aid $ifstyle $msgsrc
    catch {
        set win .desc$aid.f
        button $win.f3.relate -text "ReLaTe" -relief raised \
                -command "join_with_relate \"$aid\"" -highlightthickness 0
        pack $win.f3.relate -after $win.f3.start -side left
    }
}

rename accept_invite_fix_ui accept_invite_fix_ui_relate
proc accept_invite_fix_ui {win aid} {
	accept_invite_fix_ui_relate $win $aid
	pack $win.f3.relate -after $win.f3.start -side left
}

proc join_with_relate {aid} {
    global tcl_platform
    if {[info exists tcl_platform(platform)] && $tcl_platform(platform) == "xxx"} {
        msgpopup "No ReLaTe aviable for any $tcl_platform(platform)." ""
    } else {
        set file [open "~/relate.ini" w]
        puts $file [create_relate_ini $aid]
        close $file
        if {([find_tool relate] == "")} {
            msgpopup "relate.ini created" "relate not found!\nstart ReLaTe by yourself"
        } else {    
            if {[info exists tcl_platform(platform)] && $tcl_platform(platform) == "unix"} { 
               exec relate &
            }
            if {[info exists tcl_platform(os)] && $tcl_platform(os) == "Windows 95"} {
                if {[info exists tcl_platform(osVersion)] && $tcl_platform(osVersion) == "disabled4.10"} {
                    msgpopup "relate.ini created" "Windows 98\nstart ReLaTe by yourself"
                } else {
                    if {([find_tool start] != "")} {
                        exec start command /c relate &
                    } else {
                        msgpopup "relate.ini created" "but start.exe not found!\nstart ReLaTe by yourself"
                    }
                }
            }
            if {[info exists tcl_platform(os)] && $tcl_platform(os) == "Windows NT"} {
                if {([find_tool cmd] != "")} {
                    exec cmd /C start relate &
                } else {
                    msgpopup "relate.ini created" "but cmd.exe not found!\nstart ReLaTe by yourself"
                }
            }
        popdown $aid
        }
    }
}

proc create_relate_ini {aid} {
    global ldata
    set relate_new   "*relatenew: 2\n"
    set relate_check ""
    set relate_addr  ""
    set relate_ttl   ""
    set relate_port  ""

    for {set i 0} {$i < 4} {incr i} {
        set sdata($i,check)  0
        set sdata($i,addr)   ""
        set sdata($i,newttl) ""
        set sdata($i,port)   ""
    }
    set sdata(0,media)   Video
    set sdata(1,media)   Audio
    set sdata(2,media)   Whiteboard
    set sdata(3,media)   Texteditor

    for {set i 0} {$i < $ldata($aid,medianum)} {incr i} {
        case $ldata($aid,$i,media) {
            video { set media 0 } 
            audio { set media 1 }
            whiteboard { set media 2 }
            text { set media 3 }
            default {
              continue
            }
        }
        set sdata($media,check)  1
        set sdata($media,port)   $ldata($aid,$i,port)
        set sdata($media,addr)   $ldata($aid,$i,addr)
        set sdata($media,newttl) $ldata($aid,$i,ttl)
    }
    for {set i 0} {$i < 4} {incr i} {
        set relate_check  "[format "%s*relate%sCheck: %s"   $relate_check $sdata($i,media) $sdata($i,check)]\n"
        set relate_addr   "[format "%s*relate%sAddress: %s" $relate_addr  $sdata($i,media) $sdata($i,addr)]\n"
        set relate_ttl    "[format "%s*relate%sTTL: %s"     $relate_ttl   $sdata($i,media) $sdata($i,newttl)]\n"
        set relate_port   "[format "%s*relate%sPort: %s"    $relate_port  $sdata($i,media) $sdata($i,port)]\n"
    }    
    set msg "$relate_new$relate_check$relate_addr$relate_ttl$relate_port"
    return $msg
}
