Hello all,

I already sent this to ag-dev, I thought some of you may be interested also.

My name is Ben Bogart. I'm currently working on the "Evolving Stories"
project (http://www.imagearts.ryerson.ca/evolvingstories/) and have been
working with accessgrid since 2002 through the Synth/Ops research group
and thought I would finally introduce myself to the community.

Anyhow in 2003 or so I hacked ucl vic to add fullscreen video windows
(without OS decorations). I never got around to submitting them to the
AG team. I've now patched my changes into the ag-media vic and attached
are the diffs for ui-windows.tcl and ui-main.tcl.

The reason the full-screen hack was made was for installation and art
projects where the window decorations were unacceptable in projections.
This feature is similar to the auto-place function of accessgrid but
much more simple.

I would like to submit this to the AGEP but I'm not sure what the
process should be. Also we have no access to a windows compiler so it
would be great if someone could compile these changes to vic and send us
a windows binary to test on our matrox QID display machine.

Thanks for your time.
Ben Bogart
www.ekran.org/ben

Attachment: ui-main.diff
Description: ui-main.diff

Attachment: ui-windows.diff
Description: ui-windows.diff

--- Begin Message ---
Hello all,

My name is Ben Bogart. I'm currently working on the "Evolving Stories"
project (http://www.imagearts.ryerson.ca/evolvingstories/) and have been
working with accessgrid since 2002 through the Synth/Ops research group
and thought I would finally introduce myself to the community.

Anyhow in 2003 or so I hacked ucl vic to add fullscreen video windows
(without OS decorations). I never got around to submitting them to the
AG team. I've now patched my changes into the ag-media vic and attached
are the diffs for ui-windows.tcl and ui-main.tcl.

The reason the full-screen hack was made was for installation and art
projects where the window decorations were unacceptable in projections.
This feature is similar to the auto-place function of accessgrid but
much more simple.

I would like to submit this to the AGEP but I'm not sure what the
process should be. Also we have no access to a windows compiler so it
would be great if someone could compile these changes to vic and send us
a windows binary to test on our matrox QID display machine.

Thanks for your time.
Ben Bogart
www.ekran.org/ben
60c60
< 	label $w.bar.title -text "VIC v[version]-ryehack" -font [smallfont] \
---
> 	label $w.bar.title -text "VIC v[version]" -font [smallfont] \
75,78d74
< ####bbogart
<         button $w.bar.full -text "Fullscreen" -command fullscreen_setup\
<                 -relief raised -font [smallfont] -highlightthickness 1
< ####
83,86c79
< # bbogart added bar.full here below
< 	pack $w.bar.menu $w.bar.full $w.bar.autoplace $w.bar.help $w.bar.quit -side left -padx 1 -pady 1
< 
< 
---
> 	pack $w.bar.menu $w.bar.autoplace $w.bar.help $w.bar.quit -side left -padx 1 -pady 1
883,920d875
< #####bbogart
< proc full_deactivate w {
<         global ftext btext ltext fpshat bpshat lhat shat win_list V fullscreen_control switcher_src
< 
<         set src $switcher_src($w)
<         if [info exists win_list($src)] {
<                 # disable fullscreen_control widget
<                 foreach child [winfo children $fullscreen_control($w)] {
<                         if {[string match "*.bprev" $child] || [string match "*.bnext" $child] } {
<                                 # Its a button!
<                                 $child configure -command {}
<                                 $child configure -state disabled
< 
<                                 # Its not a button!
<                         } else {$child configure -foreground grey60 }
< 
<                         # Remove fullscreen_control binding
<                         bind $fullscreen_control($w) <Enter> {}
<                 }
<         }
< 
<         # Deal with vic internal stuff
<         destroy_decoder_stats $src
< 
<         if { [info exists ftext($src)] } {
<                 unset ftext($src)
<                 unset ftext($src)
<                 unset btext($src)
<                 unset ltext($src)
<                 unset fpshat($src)
<                 unset bpshat($src)
<                 unset lhat($src)
<                 unset shat($src)
<         }
< }
< 
< #####
< 
80,98d79
< #####bbogart
< proc destroy_fullscreen w {
< 
<         global win_src
<         set children [winfo children $w]
<         foreach child $children {
<                 if {[info exists win_src($child.video)]} {
<                         set src $win_src($child.video)
<                         switcher_unregister "$child.video"
<                         detach_window $src "$child.video"
<                 }
<         }
< 
<         set top [winfo toplevel $w]
<         destroy $top
< }
< #####
< 
< 
425,667d405
< #######bbogart
< 
< proc wrap_display_name {src} {
< 
<         global win_src
< 
<         if {[info exists win_src($src)]} {
<                 display_name $src
<         } else {
<                 full_deactivate $src
<         }
< 
< }
< 
< proc display_name {v} {
<         global switcher_src fname win_src
< 
<         set tmp [getid $switcher_src($v)]
<         if {[string length $tmp] > 26} {
<                 set fname [string range $tmp 0 25]
<         } else {
<                 set fname $tmp
<         }
< }
< 
< proc fullscreen_setup {} {
< 
<         global numScreens numVideos output_screenWidth output_screenHeight output_xoffset output_yoffset
< 
<         # Variable Defaults
<         set numScreens 1
<         set numVideos 1
<         set screenWidth 640
<         set screenHeight 480
<         set xoffset 1024
<         set yoffset 0
< 
<         # New toplevel
<         toplevel .fsetup
<         wm title .fsetup "Fullscreen Setup"
<         catch {wm resizable .fsetup false false}
< 
<         # Top Bar
<         set w .fsetup
<         frame $w.top -border 2 -relief groove
<         label $w.top.l -text "# of Screens:"
<         label $w.top.l2 -text "Videos/Screen:"
< 
<         foreach i {1 2 3 4} {
<                 radiobutton $w.top.ns$i -text "$i" -variable numScreens -value $i
<         }
<         $w.top.ns$numScreens select
< 
<         set i 1
<         foreach vids {1 4 16 64} {
<                 radiobutton $w.top.nv$i -text "$vids" -variable numVideos -value $vids
<                 incr i
<         }
<         $w.top.nv$numVideos select
< 
<        # Middle Bar
<         set mid $w.middle
<         frame $mid -border 0 -relief groove
<         label $mid.l -text "Screen Parameters:"
<         label $mid.lw -text "Width:"
<         label $mid.lh -text "Height:"
<         label $mid.lx -text "X Offset:"
<         label $mid.ly -text "Y Offset:"
<         entry $mid.ew -width 5
<         entry $mid.eh -width 5
<         entry $mid.ex -width 5
<         entry $mid.ey -width 5
< 
<         # Default Entry Values
<         $mid.ew insert 0 $screenWidth
<         $mid.eh insert 0 $screenHeight
<         $mid.ex insert 0 $xoffset
<         $mid.ey insert 0 $yoffset
< 
<         # Bottom Bar
<         set br $w.bar
<         frame $br -relief ridge -borderwidth 2
<         button $br.dismiss -text Dismiss -relief raised -command {destroy .fsetup}
<         button $br.launch -text Launch -relief raised \
<                 -command {
<                         # set variables from entry widgets
<                         set screenWidth [expr abs([.fsetup.middle.ew get])]
<                         set screenHeight [expr abs([.fsetup.middle.eh get])]
<                         set xoffset [expr abs([.fsetup.middle.ex get])]
<                         set yoffset [expr abs([.fsetup.middle.ey get])]
< 
<                        # launch only if the entries are valid
<                         set ow [catch {expr $screenWidth*1} output_screenWidth]
<                         set oh [catch {expr $screenHeight*1} output_screenHeight]
<                         set ox [catch {expr $xoffset*1} output_xoffset]
<                         set oy [catch {expr $yoffset*1} output_yoffset]
<                         if { $ow==0 && $oh==0 && $ox==0 && $oy==0 } {
<                                 fullscreen_gui $numScreens $numVideos\
<                                                $output_screenWidth $output_screenHeight\
<                                                $output_xoffset $output_yoffset
<                                 destroy .fsetup
<                         } else {
<                                 tk_messageBox -icon error \
<                                               -type ok \
<                                               -message "You entered an invalid screen parameter." \
<                                               -title error
<                         }
<                 }
< 
<         # Build GUI
<         grid $w.top -row 0 -column 0 -sticky news
<         grid $w.top.l -row 0 -column 0
<         grid $w.top.l2 -row 1 -column 0
<         for {set i 1} {$i <=4} {incr i} {
<                 grid $w.top.ns$i -row 0 -column $i
<                 grid $w.top.nv$i -row 1 -column $i
<         }
< 
<         grid $mid -row 1 -column 0 -sticky news
<         grid $mid.l -row 0 -column 0 -columnspan 4 -sticky nws
<         grid $mid.lw -row 1 -column 0 -sticky news
<         grid $mid.ew -row 1 -column 1 -sticky news
<         grid $mid.lh -row 1 -column 2 -sticky news
<         grid $mid.eh -row 1 -column 3 -sticky news
<         grid $mid.lx -row 2 -column 0 -sticky news
<         grid $mid.ex -row 2 -column 1 -sticky news
<         grid $mid.ly -row 2 -column 2 -sticky news
<         grid $mid.ey -row 2 -column 3 -sticky news
< 
<         grid $br -row 2 -column 0 -sticky news
<         pack $br.dismiss $br.launch -side right -padx 1 -pady 1
< }
< 
< proc fullscreen_gui {numScreens numVideos output_screenWidth output_screenHeight output_xoffset output_yoffset} {
<         global fname switcher_src win_src fullscreen_control
< 
<         toplevel .fullscreen
<         wm title .fullscreen "Fullscreen Control"
<         catch "wm resizable .fullscreen false false"
< 
<         set active [session active]
<         open_fullscreen $numScreens $numVideos $output_screenWidth $output_screenHeight $output_xoffset $output_yoffset
< 
<         frame .fullscreen.frames
< 
<         set numColumns [expr int(sqrt($numVideos)*$numScreens)]
< 
<         for {set i 1} {$i<=[expr $numVideos*$numScreens]} {incr i} {
<           if {$i <= [llength $active]} {
< 
<                 set f .fullscreen.frames.frame$i
<                 set v ".wvfull.frame$i.video"
<                 set fname "[display_name $v]"
< 
<                 # keep track of what video goes with what controller frame
<                 set fullscreen_control($v) $f
< 
<                 frame $f -relief groove -border 2
<                 label $f.t -text "Video $i"
<                 button $f.bprev -text "Prev" -command "switcher_prev $v ; display_name $v"
<                 button $f.bnext -text "Next" -command "switcher_next $v ; display_name $v"
< 
<                grid $f.t -row 0 -column 0 -columnspan 2
<                 grid $f.bprev -row 1 -column 0
<                 grid $f.bnext -row 1 -column 1
< 
<                 grid $f -row 0 -column $i -sticky nws
< 
<                 # window placement on large multiscreen window
<                 set row [expr abs(($i-1)/$numColumns)]
<                 set column [expr (($i-1)%$numColumns)]
<                 grid $f -row $row -column $column
< 
<                 bind $f <Enter> "wrap_display_name $v"
<            }
<         }
<         grid .fullscreen.frames -row 0 -column 0
< 
<         #button bar
<         set b .fullscreen.bar
<         set n .fullscreen.name
<         frame $n -border 2 -relief ridge
<         frame $b -border 0 -relief raise
< 
<         button $b.q -text "Dismiss" -command { destroy_fullscreen .wvfull ; destroy .fullscreen }
<         label $n.l -textvariable fname -font [smallfont]
< 
<         pack $b.q -side right
<         pack $n.l
<         grid $n -row 1 -column 0 -sticky news
<         grid $b -row 2 -column 0 -sticky news
< 
< }
< 
< proc open_fullscreen {numScreens numVideos output_screenWidth output_screenHeight output_xoffset output_yoffset} {
<         set f [smallfont]
<         set w .wvfull
<         set active [session active]
<         set screen_width 1024
<         set screen_height 768
< 
<         toplevel $w -class Vic \
<                 -visual "[winfo visual .top] [winfo depth .top]" \
<                 -colormap .top -background black
<         catch "wm resizable $w false false"
< 
<         set geo4 "+$output_yoffset"
<         set geo3 "+$output_xoffset"
<         set geo2 "x$output_screenHeight"
<         set geof "$output_screenWidth$geo2$geo3$geo4"
<         wm geometry $w $geof
<         wm title $w "fullscreen"
<         wm overrideredirect $w true
< 
<         switch $numVideos {
<                 "1" {set width [expr $output_screenWidth/$numScreens] ; set height [expr round($width/1.33)] }
<                 "4" {set width [expr $output_screenWidth/(2*$numScreens)] ; set height [expr round($width/1.33)] }
<                 "16" {set width [expr $output_screenWidth/(4*$numScreens)] ; set height [expr round($width/1.33)] }
<                 "64" {set width [expr $output_screenWidth/(8*$numScreens)] ; set height [expr round($width/1.33)] }
<         }
< 
<         set numColumns [expr int(sqrt($numVideos)*$numScreens)]
< 
<         for {set i 1} {$i <= [expr $numVideos*$numScreens]} {incr i} {
<                 frame $w.frame$i
<                 create_video_widget $w.frame$i.video $width $height
< #               set size$w "$width{x}$height"
< 
<                 set v $w.frame$i.video
<                 pack $v -anchor c
<                 if {$i <= [llength $active]} {
<                                 set row [expr abs(($i-1)/$numColumns)]
<                                 set column [expr (($i-1)%$numColumns)]
<                                 grid $w.frame$i -row $row -column $column
<                                 set current [lindex $active [expr $i-1]]
<                                 switcher_register $v $current window_switch
<                                 attach_window $current $v
<                 }
< 
<         }
< }
< #######
< 
--- Begin Message ---
Hello all,

My name is Ben Bogart. I'm currently working on the "Evolving Stories"
project (http://www.imagearts.ryerson.ca/evolvingstories/) and have been
working with accessgrid since 2002 through the Synth/Ops research group
and thought I would finally introduce myself to the community.

Anyhow in 2003 or so I hacked ucl vic to add fullscreen video windows
(without OS decorations). I never got around to submitting them to the
AG team. I've now patched my changes into the ag-media vic and attached
are the diffs for ui-windows.tcl and ui-main.tcl.

The reason the full-screen hack was made was for installation and art
projects where the window decorations were unacceptable in projections.
This feature is similar to the auto-place function of accessgrid but
much more simple.

I would like to submit this to the AGEP but I'm not sure what the
process should be. Also we have no access to a windows compiler so it
would be great if someone could compile these changes to vic and send us
a windows binary to test on our matrox QID display machine.

Thanks for your time.
Ben Bogart
www.ekran.org/ben

--

60c60
< 	label $w.bar.title -text "VIC v[version]-ryehack" -font [smallfont] \
---
> 	label $w.bar.title -text "VIC v[version]" -font [smallfont] \
75,78d74
< ####bbogart
<         button $w.bar.full -text "Fullscreen" -command fullscreen_setup\
<                 -relief raised -font [smallfont] -highlightthickness 1
< ####
83,86c79
< # bbogart added bar.full here below
< 	pack $w.bar.menu $w.bar.full $w.bar.autoplace $w.bar.help $w.bar.quit -side left -padx 1 -pady 1
< 
< 
---
> 	pack $w.bar.menu $w.bar.autoplace $w.bar.help $w.bar.quit -side left -padx 1 -pady 1
883,920d875
< #####bbogart
< proc full_deactivate w {
<         global ftext btext ltext fpshat bpshat lhat shat win_list V fullscreen_control switcher_src
< 
<         set src $switcher_src($w)
<         if [info exists win_list($src)] {
<                 # disable fullscreen_control widget
<                 foreach child [winfo children $fullscreen_control($w)] {
<                         if {[string match "*.bprev" $child] || [string match "*.bnext" $child] } {
<                                 # Its a button!
<                                 $child configure -command {}
<                                 $child configure -state disabled
< 
<                                 # Its not a button!
<                         } else {$child configure -foreground grey60 }
< 
<                         # Remove fullscreen_control binding
<                         bind $fullscreen_control($w) <Enter> {}
<                 }
<         }
< 
<         # Deal with vic internal stuff
<         destroy_decoder_stats $src
< 
<         if { [info exists ftext($src)] } {
<                 unset ftext($src)
<                 unset ftext($src)
<                 unset btext($src)
<                 unset ltext($src)
<                 unset fpshat($src)
<                 unset bpshat($src)
<                 unset lhat($src)
<                 unset shat($src)
<         }
< }
< 
< #####
< 
80,98d79
< #####bbogart
< proc destroy_fullscreen w {
< 
<         global win_src
<         set children [winfo children $w]
<         foreach child $children {
<                 if {[info exists win_src($child.video)]} {
<                         set src $win_src($child.video)
<                         switcher_unregister "$child.video"
<                         detach_window $src "$child.video"
<                 }
<         }
< 
<         set top [winfo toplevel $w]
<         destroy $top
< }
< #####
< 
< 
425,667d405
< #######bbogart
< 
< proc wrap_display_name {src} {
< 
<         global win_src
< 
<         if {[info exists win_src($src)]} {
<                 display_name $src
<         } else {
<                 full_deactivate $src
<         }
< 
< }
< 
< proc display_name {v} {
<         global switcher_src fname win_src
< 
<         set tmp [getid $switcher_src($v)]
<         if {[string length $tmp] > 26} {
<                 set fname [string range $tmp 0 25]
<         } else {
<                 set fname $tmp
<         }
< }
< 
< proc fullscreen_setup {} {
< 
<         global numScreens numVideos output_screenWidth output_screenHeight output_xoffset output_yoffset
< 
<         # Variable Defaults
<         set numScreens 1
<         set numVideos 1
<         set screenWidth 640
<         set screenHeight 480
<         set xoffset 1024
<         set yoffset 0
< 
<         # New toplevel
<         toplevel .fsetup
<         wm title .fsetup "Fullscreen Setup"
<         catch {wm resizable .fsetup false false}
< 
<         # Top Bar
<         set w .fsetup
<         frame $w.top -border 2 -relief groove
<         label $w.top.l -text "# of Screens:"
<         label $w.top.l2 -text "Videos/Screen:"
< 
<         foreach i {1 2 3 4} {
<                 radiobutton $w.top.ns$i -text "$i" -variable numScreens -value $i
<         }
<         $w.top.ns$numScreens select
< 
<         set i 1
<         foreach vids {1 4 16 64} {
<                 radiobutton $w.top.nv$i -text "$vids" -variable numVideos -value $vids
<                 incr i
<         }
<         $w.top.nv$numVideos select
< 
<        # Middle Bar
<         set mid $w.middle
<         frame $mid -border 0 -relief groove
<         label $mid.l -text "Screen Parameters:"
<         label $mid.lw -text "Width:"
<         label $mid.lh -text "Height:"
<         label $mid.lx -text "X Offset:"
<         label $mid.ly -text "Y Offset:"
<         entry $mid.ew -width 5
<         entry $mid.eh -width 5
<         entry $mid.ex -width 5
<         entry $mid.ey -width 5
< 
<         # Default Entry Values
<         $mid.ew insert 0 $screenWidth
<         $mid.eh insert 0 $screenHeight
<         $mid.ex insert 0 $xoffset
<         $mid.ey insert 0 $yoffset
< 
<         # Bottom Bar
<         set br $w.bar
<         frame $br -relief ridge -borderwidth 2
<         button $br.dismiss -text Dismiss -relief raised -command {destroy .fsetup}
<         button $br.launch -text Launch -relief raised \
<                 -command {
<                         # set variables from entry widgets
<                         set screenWidth [expr abs([.fsetup.middle.ew get])]
<                         set screenHeight [expr abs([.fsetup.middle.eh get])]
<                         set xoffset [expr abs([.fsetup.middle.ex get])]
<                         set yoffset [expr abs([.fsetup.middle.ey get])]
< 
<                        # launch only if the entries are valid
<                         set ow [catch {expr $screenWidth*1} output_screenWidth]
<                         set oh [catch {expr $screenHeight*1} output_screenHeight]
<                         set ox [catch {expr $xoffset*1} output_xoffset]
<                         set oy [catch {expr $yoffset*1} output_yoffset]
<                         if { $ow==0 && $oh==0 && $ox==0 && $oy==0 } {
<                                 fullscreen_gui $numScreens $numVideos\
<                                                $output_screenWidth $output_screenHeight\
<                                                $output_xoffset $output_yoffset
<                                 destroy .fsetup
<                         } else {
<                                 tk_messageBox -icon error \
<                                               -type ok \
<                                               -message "You entered an invalid screen parameter." \
<                                               -title error
<                         }
<                 }
< 
<         # Build GUI
<         grid $w.top -row 0 -column 0 -sticky news
<         grid $w.top.l -row 0 -column 0
<         grid $w.top.l2 -row 1 -column 0
<         for {set i 1} {$i <=4} {incr i} {
<                 grid $w.top.ns$i -row 0 -column $i
<                 grid $w.top.nv$i -row 1 -column $i
<         }
< 
<         grid $mid -row 1 -column 0 -sticky news
<         grid $mid.l -row 0 -column 0 -columnspan 4 -sticky nws
<         grid $mid.lw -row 1 -column 0 -sticky news
<         grid $mid.ew -row 1 -column 1 -sticky news
<         grid $mid.lh -row 1 -column 2 -sticky news
<         grid $mid.eh -row 1 -column 3 -sticky news
<         grid $mid.lx -row 2 -column 0 -sticky news
<         grid $mid.ex -row 2 -column 1 -sticky news
<         grid $mid.ly -row 2 -column 2 -sticky news
<         grid $mid.ey -row 2 -column 3 -sticky news
< 
<         grid $br -row 2 -column 0 -sticky news
<         pack $br.dismiss $br.launch -side right -padx 1 -pady 1
< }
< 
< proc fullscreen_gui {numScreens numVideos output_screenWidth output_screenHeight output_xoffset output_yoffset} {
<         global fname switcher_src win_src fullscreen_control
< 
<         toplevel .fullscreen
<         wm title .fullscreen "Fullscreen Control"
<         catch "wm resizable .fullscreen false false"
< 
<         set active [session active]
<         open_fullscreen $numScreens $numVideos $output_screenWidth $output_screenHeight $output_xoffset $output_yoffset
< 
<         frame .fullscreen.frames
< 
<         set numColumns [expr int(sqrt($numVideos)*$numScreens)]
< 
<         for {set i 1} {$i<=[expr $numVideos*$numScreens]} {incr i} {
<           if {$i <= [llength $active]} {
< 
<                 set f .fullscreen.frames.frame$i
<                 set v ".wvfull.frame$i.video"
<                 set fname "[display_name $v]"
< 
<                 # keep track of what video goes with what controller frame
<                 set fullscreen_control($v) $f
< 
<                 frame $f -relief groove -border 2
<                 label $f.t -text "Video $i"
<                 button $f.bprev -text "Prev" -command "switcher_prev $v ; display_name $v"
<                 button $f.bnext -text "Next" -command "switcher_next $v ; display_name $v"
< 
<                grid $f.t -row 0 -column 0 -columnspan 2
<                 grid $f.bprev -row 1 -column 0
<                 grid $f.bnext -row 1 -column 1
< 
<                 grid $f -row 0 -column $i -sticky nws
< 
<                 # window placement on large multiscreen window
<                 set row [expr abs(($i-1)/$numColumns)]
<                 set column [expr (($i-1)%$numColumns)]
<                 grid $f -row $row -column $column
< 
<                 bind $f <Enter> "wrap_display_name $v"
<            }
<         }
<         grid .fullscreen.frames -row 0 -column 0
< 
<         #button bar
<         set b .fullscreen.bar
<         set n .fullscreen.name
<         frame $n -border 2 -relief ridge
<         frame $b -border 0 -relief raise
< 
<         button $b.q -text "Dismiss" -command { destroy_fullscreen .wvfull ; destroy .fullscreen }
<         label $n.l -textvariable fname -font [smallfont]
< 
<         pack $b.q -side right
<         pack $n.l
<         grid $n -row 1 -column 0 -sticky news
<         grid $b -row 2 -column 0 -sticky news
< 
< }
< 
< proc open_fullscreen {numScreens numVideos output_screenWidth output_screenHeight output_xoffset output_yoffset} {
<         set f [smallfont]
<         set w .wvfull
<         set active [session active]
<         set screen_width 1024
<         set screen_height 768
< 
<         toplevel $w -class Vic \
<                 -visual "[winfo visual .top] [winfo depth .top]" \
<                 -colormap .top -background black
<         catch "wm resizable $w false false"
< 
<         set geo4 "+$output_yoffset"
<         set geo3 "+$output_xoffset"
<         set geo2 "x$output_screenHeight"
<         set geof "$output_screenWidth$geo2$geo3$geo4"
<         wm geometry $w $geof
<         wm title $w "fullscreen"
<         wm overrideredirect $w true
< 
<         switch $numVideos {
<                 "1" {set width [expr $output_screenWidth/$numScreens] ; set height [expr round($width/1.33)] }
<                 "4" {set width [expr $output_screenWidth/(2*$numScreens)] ; set height [expr round($width/1.33)] }
<                 "16" {set width [expr $output_screenWidth/(4*$numScreens)] ; set height [expr round($width/1.33)] }
<                 "64" {set width [expr $output_screenWidth/(8*$numScreens)] ; set height [expr round($width/1.33)] }
<         }
< 
<         set numColumns [expr int(sqrt($numVideos)*$numScreens)]
< 
<         for {set i 1} {$i <= [expr $numVideos*$numScreens]} {incr i} {
<                 frame $w.frame$i
<                 create_video_widget $w.frame$i.video $width $height
< #               set size$w "$width{x}$height"
< 
<                 set v $w.frame$i.video
<                 pack $v -anchor c
<                 if {$i <= [llength $active]} {
<                                 set row [expr abs(($i-1)/$numColumns)]
<                                 set column [expr (($i-1)%$numColumns)]
<                                 grid $w.frame$i -row $row -column $column
<                                 set current [lindex $active [expr $i-1]]
<                                 switcher_register $v $current window_switch
<                                 attach_window $current $v
<                 }
< 
<         }
< }
< #######
< 

--- End Message ---

--- End Message ---

Reply via email to